创建型模式之工厂方法
来源:互联网 发布:人性实验室 网络暴力 编辑:程序博客网 时间:2024/06/01 08:07
工厂方法模式(Factory Method Pattern)又叫虚拟构造函数(Virtual Constructor)模式或多态性工厂(Polymorphic Factory)模式。工厂方法模式的用意是定义一个创建产品对象的工厂接口,将实际创建性工作推迟到子类中。 工厂模式又分为简单工厂、工厂方法和抽象工厂模式。
工厂方法模式,英文原话为:Define an interface for creating an object, but let subclasses decide which class to instantiate. Factory Method lets a class defer instantitation to subclasses.即:定义一个用于创建对象的接口,让子类决定实例化哪个类。工厂方法使一个类的实例化延迟到其子类。
工厂方法模式代码如下:
/** * 抽象工厂 * * @author LYYYL * */public interface Creator{public <T extends Product> T factory(Class<T> c);}/** * 抽象产品 * @author LYYYL * */public interface Product{public void method1();public void method2();}/** * 具体工厂 * @author LYYYL * */public class ConcreteCreator implements Creator{@Overridepublic <T extends Product> T factory(Class<T> c) {// TODO Auto-generated method stubreturn null;}}/** * 具体产品 * @author LYYYL * */public class ConcreteProduct implements Product{@Overridepublic void method1() {// TODO Auto-generated method stub}@Overridepublic void method2() {// TODO Auto-generated method stub}}public class FactoryMethodDemo{public static void main(String[] args) {Creator creator = new ConcreteCreator();Product product = creator.factory(ConcreteProduct.class);}}
抽象工厂模式,英文原话为:Provide an interface for creating families of related or dependent objects without specifying theri concrete classes.即:为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类。
抽象工厂模式的使用场景:当一个对象族都有相同的约束时,可以使用抽象工厂模式。
相关博客连接:
设计模式第一课
设计模式之设计原则学习
设计模式之单例模式
- 创建型模式之工厂方法模式
- 创建型模式之工厂方法模式
- 创建型模式之工厂方法模式
- 创建型模式之工厂方法模式
- 创建型模式之工厂方法
- 创建型模式之工厂方法
- "围观"设计模式(8)--创建型之简单工厂模式、工厂方法模式、抽象工厂模式
- "围观"设计模式(8)--创建型之简单工厂模式、工厂方法模式、抽象工厂模式
- 设计模式之---创建型模式(一)--工厂方法模式
- java设计模式之创建型模式-工厂方法模式
- 创建型之单态模式和工厂方法模式
- 设计模式-创建型模式之 Factory Method(工厂方法)
- JAVA设计模式创建型模式之工厂方法
- java设计模式之创建型模式-FactoryMethod ( 工厂方法 )
- java设计模式(创建型)之工厂方法模式
- 创建型设计模式之工厂方法模式FactoryMethod
- 创建型模式之工厂方法模式(FactoryMethod)
- 创建型模式之二——工厂方法模式
- UI11_Block传值
- hdu 2094 产生冠军【set基础应用】
- Android-应用开发-多媒体编程(九)
- 练习题
- 智能家居为什么离不开ZigBee协议
- 创建型模式之工厂方法
- hdu 3790(最短路径问题 SPFA算法)
- 程序员必须掌握的十种算法---快速排序算法
- [leetcode] Add Two Numbers
- UIScrollView
- hdoj 5094 Maze 【BFS + 状态压缩】 【好多坑】
- 宝岛探险2
- Android-应用开发-内容提供者(十)
- ListView 添加footView导致崩溃的问题