抽象工厂模式

Posted 寒枝将息

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了抽象工厂模式相关的知识,希望对你有一定的参考价值。

抽象工厂模式:将一组具有相同主题的单独的工厂封装起来,抽象工厂可以理解为工厂的工厂。抽象工厂模式比工厂模式具有更高的抽象程度,更广泛的适用性。
工厂方法模式:针对的是 一个产品等级结构。
抽象工厂模式:针对 多个产品等级结构。
// 抽象食物
interface Food {
public String getFoodName();
}

// 抽象餐具
interface TableWare {
public String getToolName();
}

// 抽象工厂
interface KitchenFactory {
public Food getFood();
public TableWare getTableWare();
}

//具体食物 Apple 的定义如下
class Apple implements Food{
public String getFoodName() {
return "apple";
}
}

//具体餐具 Knife 的定义如下
class Knife implements TableWare {
public String getToolName() {
return "knife";
}
}

// 以具体工厂 AKitchen 为例
class AKitchen implements KitchenFactory {

public Food getFood() {
return new Apple();
}

public TableWare getTableWare() {
return new Knife();
}
}

// 吃货要开吃了
public class Foodaholic {

public void eat(KitchenFactory k) {
System.out.println("A foodaholic is eating "+ k.getFood().getFoodName()
+ " with " + k.getTableWare().getToolName() );
}

public static void main(String[] args) {
Foodaholic fh = new Foodaholic();
KitchenFactory kf = new AKitchen();
fh.eat(kf);
}
}

以上是关于抽象工厂模式的主要内容,如果未能解决你的问题,请参考以下文章

简单工厂模式+工厂方法模式+抽象工厂模式

java抽象工厂的使用意图是啥?

工厂模式抽象工厂模式策略模式

工厂模式 - 抽象工厂

设计模式——抽象工厂模式

设计模式之抽象工厂模式