创建型设计-工厂模式
来源:互联网 发布:淘宝号被限制了怎么办 编辑:程序博客网 时间:2024/06/02 04:50
声明一下:本文的文字多数文字都是来自网上,只有例子是自己写的。因为自我感觉还没有能力能够系统的解释一个模式,已经有现成的比较完善的说明,就不重复造轮子哈。
工厂设计模式是创建型设计模式之一,在传统变成方式中,有很多使用new 关键字来创建对象,这种创建方式造成了对象之间耦合性强,不宜修改修改,而工厂设计模式是采用接口的方式实现对象的简历,这样我们在变成不在世面向某一个对象儿进行变成,而变成了面向接口编程。
工厂设计包含:
1、抽象工厂角色:这是工厂方法模式的核心,它与应用程序无关。是具体工厂角色必须实现的接口或者必须继承的父类。在java中它由抽象类或者接口来实现。
2、具体工厂角色:它含有和具体业务逻辑有关的代码。由应用程序调用以创建对应的具体产品的对象。在java中它由具体的类来实现。
3、抽象产品角色:它是具体产品继承的父类或者是实现的接口。在java中一般有抽象类或者接口来实现。
4、具体产品角色:具体工厂角色所创建的对象就是此角色的实例。在java中由具体的类来实现。
具体代码实现:
工厂接口:
public interface WorkFactory { Work getWork();}产品接口:
public interface Work { void doWork();}
工厂实现1:
public class StudentFactory implements WorkFactory{ @Override public Work getWork() { return new StudentWrokImpl(); }}具体实现2:
public class TeackerFactory implements WorkFactory { @Override public Work getWork() { return new TeacherWorkImpl(); }}产品实现1:
public class StudentWrokImpl implements Work { @Override public void doWork() { System.out.println("学生,写作业!"); }}
实现2:
public class TeacherWorkImpl implements Work { @Override public void doWork() { System.out.println("教师审批作业!"); }}
public class main { public static void main(String[] args) { WorkFactory student=new StudentFactory(); student.getWork().doWork(); WorkFactory teacher =new TeackerFactory(); teacher.getWork().doWork(); }}
学生,写作业!
教师审批作业!
优点:克服了简单工厂违背开放-封闭原则的缺点,又保留了封装对象创建过程的优点,降低客户端和工厂的耦合性。
缺点:每增加一个产品,相应的也要增加一个子工厂,加大了额外的开发量。
阅读全文
0 0
- 创建型设计-工厂模式
- 设计模式 - 创建型模式 - 工厂模式
- 设计模式-创建型模式-抽象工厂
- 设计模式-创建型模式-工厂方法
- 设计模式--创建型--工厂模式
- 设计模式-创建型模式-抽象工厂
- 【设计模式】创建型模式-工厂方法
- 【设计模式】创建型模式-抽象工厂
- 创建型设计模式---工厂模式
- 创建型设计模式:简单工厂模式
- 设计模式-创建型之工厂模式
- 创建型设计模式_01--工厂模式
- 创建型设计模式-简单工厂模式
- 创建型设计模式-抽象工厂模式
- 设计模式-----创建型之工厂模式
- 设计模式--创建型--简单工厂
- 设计模式--创建型--抽象工厂
- 设计模式--创建型-抽象工厂
- 2017年大数据和业务分析收入将超1500亿美元
- 手动用asp.net写TreeGrid
- Strust小结
- java反射详解实战代码
- 《高质量C++编程指南》如何提高程序的效率
- 创建型设计-工厂模式
- 引用和指针
- MFC浮动窗口的创建
- 加解密 理论基础 一
- OkHttp网络框架的使用
- [Lintcode] #2 尾部的零
- 【luogu 2863】[USACO06JAN]牛的舞会The Cow Prom题目描述
- php return 和 return false区别
- 【Java】JAXB 处理 复杂XML 与JavaBean 互相转化过程