当需要把实例化的任务推迟到其子类来完成时,适用Factory Method模式。
Use Case::
顾客在在麦当劳购买食品。
顾客对服务员说, 来一个鸡翅,服务员就给顾客一个鸡翅。
顾客对服务员说,来一个汉堡,服务员就给顾客一个汉堡。
请考虑:麦当劳每周/月都会有新的食品投入到店里,系统要满足这个需要。
服务员无法知道下个月会有什么新食品要卖。
请为这个Use Case做出类图。
顾客在在麦当劳购买食品。
顾客对买鸡翅的服务员说, 来一个鸡翅,买鸡翅的服务员就给顾客一个鸡翅。
顾客对买汉堡的服务员说, 来一个汉堡,买汉堡的服务员就给顾客一个汉堡。
请为这个Use Case做出类图。
适用性:
当一个类(Factory)不知道它所必须创建的对象的类的时候(框架);
当一个类希望由它的子类来指定它所创建的对象的时候。
意图:
定义一个用于创建对象的接口,让子类决定实例化哪一个类。
使一个类的实例化延迟到Factory Method的子类。
public interface Product {
}
public class ConcreteProductA implements Product {
}
public class ConcreteProductB implements Product {
}
public interface Factory {
Product createProduct();
}
public class ConcreteFactoryA implements Factory {
public Product createProduct() {
return new ConcreteProductA();
}
}
public class ConcreteFactoryB implements Factory {
public Product createProduct() {
return new ConcreteProductB();
}
}
分享到:
相关推荐
C#面向对象设计模式纵横谈(5):Factory Method 工厂方法模式(创建型模式) (Level 300)
C#面向对象设计模式纵横谈(5):Factory Method 工厂方法模式(创建型模式) 体验课程
C#面向对象设计模式纵横谈:Factory Method 工厂方法模式(创建型模式)
2、工厂方法模式(Factory Method Pattern) 用意:让每个具体工厂生产具体产品
Chapter 2: A Case Study: Designing an App Chapter 3: Prototype Chapter 4: Factory Method Chapter 5: Abstract Factory Chapter 6: Builder Chapter 7: Singleton Chapter 8: Adapter Chapter 9: Bridge ...
Java常用设计模式(SingleTon、FactoryMethod、AbstractFactory)
Factory Method 设计模式 工厂方法模式
C++设计模式课件8_Factory Method_工厂方法.pdf
工厂方法模式
Factory Method设计模式C#中的实现例子
很简单的一个例子 博文链接:https://schnauzer.iteye.com/blog/111889
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.amqp.core.Queue]: Factory method 'clientQueue' threw exception; nested exception is org....
2)、工厂方法型:Factory Method 3)、抽象工厂型:Abstract Factory 4)、原型:Prototype 5)、建造型:Builder 2、结构型模式:类与类之间的调用 1)、适配器:Adapter 2)、桥接模式:Bridge 3)、门面模式:...
FactoryMethodPattern.zip
NULL 博文链接:https://lym6520.iteye.com/blog/698013
设计模式 t02FactoryMethod
它们都是由不同的厂家生产的,这就是工厂方法模式(FactoryMethod)与前面所说的简单工厂模式(SimpleFactory)的差别。 实例: 多文档系统。我已经用C#的源码编程了:请下载Factory Method Patter.rar
文章地址:https://blog.csdn.net/mazhiyuan1981/article/details/110196482
C++的设计模式之工厂方法模式(Factory Method) C++的设计模式之工厂方法模式(Factory Method) C++的设计模式之工厂方法模式(Factory Method) C++的设计模式之工厂方法模式(Factory Method)