JAVA基礎(chǔ)23種設(shè)計模式----工廠模式--MonkeyKing
工廠方法模式同樣屬于類的創(chuàng)建模式又被稱為多臺工廠模式鼎姐。工廠方法模式的意義是定義一個創(chuàng)建產(chǎn)品對象的工廠接口,將實際創(chuàng)建工作推遲到子類當(dāng)中茁影。核心工廠類不再負(fù)責(zé)產(chǎn)品的創(chuàng)建,這樣核心類成為一個抽象工廠角色丧凤,僅負(fù)責(zé)具體工廠子類必須實現(xiàn)的接口募闲,這樣進一步抽象化的好處是使得工廠方法模式可以使系統(tǒng)在不修改具工廠角色的情況下引進新的產(chǎn)品。
- 抽象工廠(Creator)
- 工廠方法模式的核心愿待,任何工廠類都必須實現(xiàn)設(shè)個接口浩螺。
- 具體工廠(creator create)
- 具體工廠類是抽象工廠的一個實現(xiàn),負(fù)責(zé)實例化產(chǎn)品對象仍侥。
- 抽象(product)
- 工廠方法模式所創(chuàng)建的所有對象的父類要出,它負(fù)責(zé)描述所有實例所共有的接口。
- 具體產(chǎn)品(concrete product)
- 工廠方法模式所創(chuàng)建的具體實例對象
具體實現(xiàn)
抽象工廠
public interface FruitFactory {
Fruit getFruit();
}
具體工廠
public class AppleFactory implements FruitFactory {
@Override
public Fruit getFruit() {
return new Apple();
}
}
//===========================================
public class BananaFactory implements FruitFactory {
@Override
public Fruit getFruit() {
return new Banana();
}
}
抽象
public interface Fruit {
void get();
}
具體產(chǎn)品
public class Apple implements Fruit {
public void get() {
System.out.println("get apple");
}
}
//===========================================
public class Banana implements Fruit {
public void get() {
System.out.println("get banana");
}
}
實現(xiàn)
public class MainClass {
public static void main(String[] args){
FruitFactory appleFactory = new AppleFactory();
Fruit apple = appleFactory.getFruit();
apple.get();
FruitFactory bananaFactory = new BananaFactory();
Fruit banana = bananaFactory.getFruit();
banana.get();
}
}