简要学习简单工厂模式与工厂方法模式
来源:互联网 发布:可以看本子软件 编辑:程序博客网 时间:2024/06/18 14:30
简单工厂模式与工厂方法模式
简单工厂模式,又称静态工厂方法模式。由一个工厂类根据传入的参量决定创建出哪一种具体产品类的实例。
消费者只知道需要哪一种产品类,具体的实例化工作由工厂类完成。即消费者只阐明需求,具体工作由工厂类完成。产品模块由产品的抽象层----接口和具体实现类组成。故简单工厂模式的角色有工厂角色、抽象产品角色以及具体产品角色。(如图)
工厂角色是该模式的核心。往往由一个具体的java类实现。
抽象产品角色是创建对象的父类或超类。往往由抽象类或接口组成。
具体产品角色是所有创建的具体对象,有一个具体java类担任。
工厂类的具体实现:
public class Creater {
/*
静态工厂方法
*/
public static Productfactory() {
return new ConcreteProduct();
}
}
模式的核心是工厂类,这个类含有必要的判断逻辑,可以决定在省么时候创建那一个产品类的实例,而客户端则可以免除直接创建产品对象的责任,而仅仅负责消费产品。这种做法实现了对责任的分割。
模式以不变(一个工厂类)应万变(产品类的变化),未能很好的满足“开-闭”原则。当产品类增加时,工厂类也必须改变。
具体实例:SAX2库中的XMLReaderFactory类
简单工厂模式和工厂方法模式都是类的创建模式。工厂方法模式是对简单工厂模式的进一步完善(改进),又叫多态性工厂模式。该模式对工厂类进一步抽象化,形成工厂等级结构,与产品等级结构对应。模式中具体包含以下4中角色:
抽象工厂角色(该角色是模式的核心,所有具体工厂类必须继承该抽象类或实现该接口。)、具体工厂角色(具体的工厂类。)、抽象产品角色、具体产品角色。
客户端创建工厂对象,然后调用工厂对象的工厂方法创建产品对象。
具体实现:
public interface Creator {
publicProduct factory();
}
具体实例:在java聚集中的应用。所有的java聚集都实现了Collection接口,该接口规定所有的聚集必须提供一个iterator()方法,返回一个Iterator类型的对象。一个具体的java聚集对象,会通过这个方法返回一个具体的Iterator类对象。
- 简要学习简单工厂模式与工厂方法模式
- 简单工厂模式与工厂方法模式
- 简单工厂模式与工厂方法模式
- 简单工厂模式与工厂方法模式
- 简单工厂模式与工厂方法模式
- 简单工厂模式与工厂方法模式
- 简单工厂模式与工厂方法模式
- 简单工厂模式与工厂方法模式
- 简单工厂模式与工厂方法模式
- java学习之工厂模式(简单工厂模式,工厂方法模式,抽象工厂模式)
- 简单工厂模式、策略模式与工厂方法模式
- 设计模式<四>简单工厂模式与工厂方法模式
- 设计模式学习之简单工厂、工厂方法、抽象工厂
- 简单工厂、工厂方法与抽象工厂模式对比
- 设计模式-简单工厂、工厂方法与抽象工厂
- 简单工厂,工厂, 抽象工厂模式的学习与比较
- 简单工厂、工厂方法、抽象工厂模式
- 简单工厂、工厂方法、抽象工厂模式
- 图像上添加噪声 并滤波
- windows2008允许多用户同时登录
- Count and Say
- Intellij Idea编译项目下的.java文件时的编码问题
- 数据库乱码问题
- 简要学习简单工厂模式与工厂方法模式
- 关于java基础--线程的详解与测试
- [面试相关] iOS开发就业面试技巧
- Linux kernel 分析之十:内核线程
- 浅谈C++中指针和引用的区别(转载)
- Windows进程的同步之内核对象-互斥量(Mutex)
- hd-1000-A + B Problem
- HDU-1870-愚人节的礼物(水题)
- "异或"实现a和b两变量交换