好處:
接口和實現分離了,適於團隊的協作開發。
更具體的優點:可以參看IDP原則。
J2EE中的API規範基本上都是接口,由各應用服務器來實現,比如:WebSphere按照這個接口實現自己的,WebLogic也按照這個接口實現自己的,作為開發者來說我們根本就不用去管誰是怎樣實現的,只要按照J2EE的API
來寫就可以了,根本用不著導入它們的實現包,實際上具體的是由它們自身完成了。
接口說白了,也就是定死了壹個框,具體的是糊紅紙還是糊黑紙我們都用不著去管的,我們只要知道它是個框,提供
了哪些方法就夠了。舉
個簡單的JDBC的例子吧,比如有個BaseDao接口,現在有MySQLDao實現了壹個(我們可以把具體的實現類配在配置
文件中,再通過反射進行實例化),也就類似這樣的:
BaseDao?dao?=?(BaseDao)(Class.forName(Config.getDaoName()).newInstance());
.其中Config.getDaoName()可以獲得配置文件中的配置,比如是:com.bao.dao.impl.MySQLDao。
要改用Oracle了,這樣我們只要按BaseDao的定義,再實現壹個OracleDao就可以了,
再將配置文件中的配置改為:com.bao.dao.impl.OralceDao就可以了,而在已經寫好的代碼中,我們可以壹行不
改的進行了數據庫移植,這個就是面向對象設計原則中的“開-閉原則”(對增加是開放的,對修改是封閉的)
但這只是理論上的,現實中很難做到的。?