java设计模式通俗_通俗易懂的Java设计模式之工厂方法模式
一 、工廠方法(Factory Method)模式
工廠方法模式的意義是定義一個創(chuàng)建產品對象的工廠接口,將實際創(chuàng)建工作推遲到子類當中。核心工廠類不再負責產品的創(chuàng)建,這樣核心類成為一個抽象工廠角色,僅負責具體工廠子類必須實現(xiàn)的接口,這樣進一步抽象化的好處是使得工廠方法模式可以使系統(tǒng)在不修改具體工廠角色的情況下引進新的產品。
二、 工廠方法模式角色與結構
抽象工廠(Creator)角色:是工廠方法模式的核心,與應用程序無關。任何在模式中創(chuàng)建的對象的工廠類必須實現(xiàn)這個接口。
具體工廠(Concrete Creator)角色:這是實現(xiàn)抽象工廠接口的具體工廠類,包含與應用程序密切相關的邏輯,并且受到應用程序調用以創(chuàng)建產品對象。在上圖中有兩個這樣的角色:BulbCreator與TubeCreator。
抽象產品(Product)角色:工廠方法模式所創(chuàng)建的對象的超類型,也就是產品對象的共同父類或共同擁有的接口。在上圖中,這個角色是Light。
具體產品(Concrete Product)角色:這個角色實現(xiàn)了抽象產品角色所定義的接口。某具體產品有專門的具體工廠創(chuàng)建,它們之間往往一一對應。
三、一個簡單的實例
// 產品 Plant接口
public interface Plant { }
//具體產品PlantA,PlantB
public class PlantA implements Plant {
public PlantA () {
System.out.println("create PlantA !");
}
public void doSomething() {
System.out.println(" PlantA do something ...");
}
}
public class PlantB implements Plant {
public PlantB () {
System.out.println("create PlantB !");
}
public void doSomething() {
System.out.println(" PlantB do something ...");
}
}
// 產品 Fruit接口
public interface Fruit { }
//具體產品FruitA,FruitB
public class FruitA implements Fruit {
public FruitA() {
System.out.println("create FruitA !");
}
public void doSomething() {
System.out.println(" FruitA do something ...");
}
}
public class FruitB implements Fruit {
public FruitB() {
System.out.println("create FruitB !");
}
public void doSomething() {
System.out.println(" FruitB do something ...");
}
}
// 抽象工廠方法
public interface Abstrac
總結
以上是生活随笔為你收集整理的java设计模式通俗_通俗易懂的Java设计模式之工厂方法模式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 为什么特斯拉 探寻特斯拉的成功之路?
- 下一篇: 抵押贷款流程