簡單工廠:一個工廠類根據傳入的參量決定建立出哪種產品類的實例spa
直接一個工廠類,內部經過對象
swith(operator) {接口
case"+": oper=new AddOperation();//產生對象產品
...it
而工廠方法模式:定義一個用於建立對象的接口,讓子類決定實例化哪個類。工廠方法使一個類的實例化延遲到其子類。io
定義一個接口 DAO擴展
Add類實現該接口:AddDAO implements DAO{。。。//產生對象}方法
客戶端代碼: DAO dao=new AddDAO();im
dao.createOper();//產生對象客戶端
...
這樣若是須要增長一個功能類,簡單工廠須要修改工廠類,而工廠方法只要增長一個類(實現DAO接口)產生相應的功能對象,
這樣對比正解釋了開放-封閉原則,對擴展開放,對修改關閉。