工廠方法模式
二、角色:
1、抽象產品角色:產品物件的共同父類或共同擁有的介面,此例中的biaoqing。
2、具體產品角色:這個角色實現了抽象產品角色所定義的介面。某具體產品有專門的具體工廠建立(此例的 smilefactory,cryfactory),它們之間往往一一對應。此例中的cry,smile。
3、抽象工廠角色:工廠方法模式的核心,工廠類都需實現這個介面。
4、具體工廠角色:實現抽象工廠介面,經過程式呼叫物件從而建立具體產品物件,與具體產品角色一一對應!此例 中smilefactory將建立smile物件。
三、**:
smile實現表情biaoqing介面
package factorymethod;
public inte***ce biaoqing
package factorymethod;
public class smile implements biaoqing
}
package factorymethod;
public class cry implements biaoqing
}
表情工廠介面
package factorymethod;
public inte***ce bqfactory
package factorymethod;
public class smilefactory implements bqfactory
}
package factorymethod;
public class cryfactory implements bqfactory
}
測試
package factorymethod;
public class test
}
結果:
四、其他:smile的顯示方法
cry的顯示方法
2、是簡單工廠模式的衍生,解決了許多簡單工廠模式的問題,「開閉原則」:擴充套件時,只需要新增相應的具體產品類及其對應的具體工廠類即可。
3、依賴與抽象而不依賴具體類(由mul圖可以看出主要是bqfactory依賴於biaoqing),很好的體現了「依賴倒置原則」
五、什麼時候使用工廠方法模式:
1、當乙個類不知道它所必須建立的物件的類的時候
2、乙個類本身就希望由他的子類建立所需的物件
3。。。
設計模式 工廠模式之工廠方法模式
工廠方法模式是指定義乙個建立物件的介面,然後實現這個介面的工廠來決定建立什麼樣的例項。工廠方法讓類的例項推遲到子類中進行。在這個模式中,只關心需要建立的是什麼工廠,不需要關心建立的細節。而且新加入的產品符合開閉原則。1 建立支付介面,裡面定義抽象的支付方法。package com.gupao.vip...
設計模式之工廠方法模式
package com.csair.design.pattern 工廠方法,有抽象基類,每個子類生產乙個具體物件,與抽象工廠的關係是,抽象工廠生產多個產品 產品有某種內在聯絡 工廠方法只生產乙個物件 author ppt public class factorymethod public stati...
設計模式之工廠方法模式
在介紹工廠方法模式之前,先來介紹一下簡單工廠。什麼是簡單工廠?在類中,難免要例項化一些類,那麼我們把這些類的例項化抽離出來封裝成乙個工廠類,工廠類提供乙個公共的靜態或非靜態的方法來返回其他物件所需要的物件。這樣做的目的就是將物件的例項化與邏輯 分開,提高 的復用能力。這就是簡單工廠。public a...