大话设计模式4 简单工厂模式VS工厂模式
来源:互联网 发布:飞秋软件下载 编辑:程序博客网 时间:2024/05/14 18:31
工厂模式:
与前面学习的简单工厂模式比起来,工厂模式更加符合开放封闭原则,新增对象类型是通过新增工厂类实现的,而非修改原有的工厂类。用一个简单的学雷锋的例子做对比。
package simpleFactoryVSFactory;interface IXueLeiFeng { void sweep(); void wash();}class Student implements IXueLeiFeng { @Override public void sweep() { // TODO Auto-generated method stub System.out.println("Student sweep"); } @Override public void wash() { // TODO Auto-generated method stub System.out.println("Student wash"); }}class Volunteer implements IXueLeiFeng { @Override public void sweep() { // TODO Auto-generated method stub System.out.println("Volunteer sweep"); } @Override public void wash() { // TODO Auto-generated method stub System.out.println("Volunteer wash"); }}public class SimpleFactory { public static IXueLeiFeng createLeiFeng(String name) { IXueLeiFeng instance; if (name.equals("student")) { instance = new Student(); } else { instance = new Volunteer(); } return instance; } /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub IXueLeiFeng leiFengA = createLeiFeng("student"); leiFengA.sweep(); leiFengA.wash(); IXueLeiFeng leiFengB = createLeiFeng("Not student"); leiFengB.sweep(); leiFengB.wash(); }}工厂模式抽象出一个工厂接口,新增对象类型,只需要实现工厂接口,扩展即可。
package simpleFactoryVSFactory;interface IFactory { IXueLeiFeng createLeiFeng();}class StudentFactory implements IFactory { @Override public IXueLeiFeng createLeiFeng() { // TODO Auto-generated method stub return new Student(); }}class VolunteerFactory implements IFactory { @Override public IXueLeiFeng createLeiFeng() { // TODO Auto-generated method stub return new Volunteer(); }}public class Factory { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub IFactory iFactoryA = new StudentFactory(); IXueLeiFeng leiFengA = iFactoryA.createLeiFeng(); leiFengA.sweep(); leiFengA.wash(); IFactory iFactoryB = new VolunteerFactory(); IXueLeiFeng leiFengB = iFactoryB.createLeiFeng(); leiFengB.sweep(); leiFengB.wash(); }}
Head first
工厂模式VS抽象工厂
在Head first中,工厂模式:是定义了一个抽象方法,让继承它的子类去实现,将类的实例化推迟到子类.
而抽象工厂:则是定义了一个接口,里面组合了一堆相关对象的创建的方法。
工厂的特点:都是用来封装对象的创建,帮助实现针对接口编程,而非针对实现编程。
- 大话设计模式4 简单工厂模式VS工厂模式
- 大话设计模式____简单工厂VS工厂方法
- 大话设计模式之一【简单工厂模式】
- 大话设计模式-简单工厂模式
- 大话设计模式 --- 简单工厂模式
- 大话设计模式之简单工厂模式
- 大话设计模式---简单工厂模式
- 大话设计模式笔记----简单工厂模式
- 大话设计模式之一简单工厂模式
- 大话设计模式_简单工厂模式
- 大话设计模式之简单工厂模式
- 《大话设计模式》读书笔记--简单工厂模式
- 大话设计模式--简单工厂模式
- 大话设计模式 第一章 简单工厂模式
- 大话设计模式之简单工厂模式
- 大话设计模式-1.简单工厂模式
- 大话设计模式(一)简单工厂模式
- 大话设计模式之简单工厂模式
- 大小端的几种判断方法
- powder designer 与数据库
- JAVA类的生命周期
- asp.net 返回上一页的实现方法小集
- 线程的互斥
- 大话设计模式4 简单工厂模式VS工厂模式
- ios 内存使用陷阱
- 推荐系统架构
- hdoj 1010 Repair the Wall(贪心)
- [C语言]系统目录操作函数
- 第五十五节 java学习——键盘事件
- ASP.NET页面错误处理
- 一个教育培训行业客户关系管理软件的开发过程--需求分析(二)
- 杭电OJ——1228 A+B