工厂方法模式的结构:
结构与角色如下图:
工厂方法模式的系统涉及到的角色如下:
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
分享到:
相关推荐
很简单的一个例子 博文链接:https://schnauzer.iteye.com/blog/111889
C++的设计模式之工厂方法模式(Factory Method) C++的设计模式之工厂方法模式(Factory Method) C++的设计模式之工厂方法模式(Factory Method) C++的设计模式之工厂方法模式(Factory Method)
2、工厂方法模式(Factory Method Pattern) 用意:让每个具体工厂生产具体产品
设计模式C++学习之工厂方法模式(Factory Method)
C#面向对象设计模式纵横谈:Factory Method 工厂方法模式(创建型模式)
5、工厂方法模式FACTORY METHOD PATTERN 6、抽象工厂模式ABSTRACT FACTORY PATTERN 7、门面模式FACADE PATTERN 8、适配器模式ADAPTER PATTERN 9、模板方法模式TEMPLATE METHOD PATTERN 10、建造者模式BUILDER ...
C++设计模式课件8_Factory Method_工厂方法.pdf
Factory Method 工厂方法模式(创建型模式).wmv
它们都是由不同的厂家生产的,这就是工厂方法模式(FactoryMethod)与前面所说的简单工厂模式(SimpleFactory)的差别。 实例: 多文档系统。我已经用C#的源码编程了:请下载Factory Method Patter.rar
C#面向对象设计模式纵横谈(5):Factory Method 工厂方法模式(创建型模式) (Level 300)
NULL 博文链接:https://zhouhaitao.iteye.com/blog/1003702
FACTORY METHOD(工厂方法)
NULL 博文链接:https://lym6520.iteye.com/blog/698013
C#面向对象设计模式纵横谈(5):Factory Method 工厂方法模式(创建型模式) 视频教程,主讲人李建忠
工厂方法模式,FactoryMethod
1. 简单工厂模式(Simple Factory) 2. 工厂方法模式(Factory Method) 3. 抽象工厂模式(Abstract Factory) 这三种模式从上到下逐步抽象,并且更具一般性。还有一种分类法,就是将简单工厂模式看为工厂方法模式的一...
文章地址:https://blog.csdn.net/mazhiyuan1981/article/details/110196482