`

工厂方法模式(Factory Method)

 
阅读更多
工厂方法模式的结构
结构与角色如下图:



工厂方法模式的系统涉及到的角色如下:

1)抽象工厂(Creator):担任这个角色的是工厂方法模式的核心,它是与应用无关的,也就是上图的Creator。在实际系统中,这个角色也常常使用抽象Java类实现。

2)具体工厂(ConcreteCreator):担任这个角色的是实现了抽象工厂的具体Java类,也就是上图的ConcreteCreator01与ConcreteCreator02。

3)抽象产品(Product):工厂方法模式所创建的对象的超类型,也就是产品对象共同的父类或拥有的接口,如上图中的Product。

4)具体产品(ConcreteProduct):这个角色实现了抽象产品角色所声明的接口,如上图的ConcreteProduct01,ConcreteProduct02。


工厂方法模式在农场的实现:

抽象工厂角色FruitGardener 的源代码:
public interface FruitGardener {
	
	public Fruit factory();

}


具体工厂角色AppleGardener 的源代码 :

public class AppleGardener implements FruitGardener {

	@Override
	public Fruit factory() {
		return new Apple();
	}

}


具体工厂角色GrapeGardener 的源代码 :
public class GrapeGardener implements FruitGardener {

	@Override
	public Fruit factory() {
		return new Grape();
	}

}


具体工厂角色StrawberryGardener 的源代码 :

public class StrawberryGardener implements FruitGardener {

	@Override
	public Fruit factory() {
		return new Strawberry();
	}

}


PS.一个复杂的工厂逻辑就是循环使用产品对象
  • 大小: 30.5 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics