首先 用起來方便,結構清晰
在j2ee中的接口也就是類,類與類之間的通信因為接口而變的簡單易懂
舉個簡單的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就可以了,而在已經寫好的代碼中,我們可以壹行不
改的進行了數據庫移植,這個就是面向對象設計原則中的“開-閉原則”(對增加是開放的,對修改是封閉的)。但
這只是理論上的,現實中很難做到的。