侵入式和非侵入式的區(qū)別
1、設(shè)計(jì)理念不同
侵入式設(shè)計(jì),就是設(shè)計(jì)者將框架功能“推”給客戶端;
而非侵入式設(shè)計(jì),則是設(shè)計(jì)者將客戶端的功能“拿”到框架中用。
2、設(shè)計(jì)表現(xiàn)不同
侵入式設(shè)計(jì)有時(shí)候表現(xiàn)為客戶端需要繼承框架中的類;
而非侵入式設(shè)計(jì)則表現(xiàn)為客戶端實(shí)現(xiàn)框架提供的接口。
3、依賴性不同
侵入式讓用戶代碼產(chǎn)生對框架的依賴,這些代碼不能在框架外使用,不利于代碼的復(fù)用。但侵入式可以使用戶跟框架更好的結(jié)合,更容易更充分的利用框架提供的功能。
非侵入式的代碼則沒有過多的依賴,可以很方便的遷移到其他地方。但是與用戶代碼互動(dòng)的方式可能就比較復(fù)雜。