工厂方法
 概述
    定义一个用于创建对象的接口,让子类决定实例化哪一个类。FactoryMethod使一个类的实例化延迟到其子类。
 适用性
    1.当一个类不知道它所必须创建的对象的类的时候。

2.当一个类希望由它的子类来指定它所创建的对象的时候。

3.当类将创建对象的职责委托给多个帮助子类中的某一个,并且你希望将哪一个帮助子类是代理者这一信息局部化的时候。
 参与者
    1.Product
      定义工厂方法所创建的对象的接口。

2.ConcreteProduct
      实现Product接口。

3.Creator
      声明工厂方法,该方法返回一个Product类型的对象。
      Creator也可以定义一个工厂方法的缺省实现,它返回一个缺省的ConcreteProduct对象。
      可以调用工厂方法以创建一个Product对象。

4.ConcreteCreator
      重定义工厂方法以返回一个ConcreteProduct实例。
 类图2012年4月17日11:39:56

Title
 
 例子
Product 
public interface Work {

void doWork();
}
ConcreteProduct 
public class StudentWork implements Work {

public void doWork() {
        System.out.println("学生做作业!");
    }

}
public class TeacherWork implements Work {

public void doWork() {
        System.out.println("老师审批作业!");
    }

}
Creator 
public interface IWorkFactory {

Work getWork();
}
ConcreteCreator 
public class StudentWorkFactory implements IWorkFactory {

public Work getWork() {
        return new StudentWork();
    }

}
public class TeacherWorkFactory implements IWorkFactory {

public Work getWork() {
        return new TeacherWork();
    }

}
Test 
public class Test {

public static void main(String[] args) {
        IWorkFactory studentWorkFactory = new StudentWorkFactory();
        studentWorkFactory.getWork().doWork();
        
        IWorkFactory teacherWorkFactory = new TeacherWorkFactory();
        teacherWorkFactory.getWork().doWork();
    }

}
result 
学生做作业!
老师审批作业!
允许自由传播,但请保留页脚版权信息
Copyright © 2008 Angus Young
疯狂Java联盟:http://www.crazyjava.org

设计模式——工厂方法相关推荐

  1. 设计模式 工厂方法_工厂方法设计模式

    设计模式 工厂方法 工厂方法模式是流行的创作设计模式之一. 它并不特别依赖于工厂对象来创建对象. 而是要在同一类中使用单独的方法来创建对象. Factory Method模式定义了一个用于创建对象的接 ...

  2. 设计模式 工厂方法_工厂设计模式–一种有效的方法

    设计模式 工厂方法 如您所知,"工厂方法模式"或俗称"工厂设计模式"是"创意设计模式"类别下的一种设计模式. 模式背后的基本原理是,在运行时 ...

  3. 设计模式 工厂方法_使用工厂方法模式设计最佳实践

    设计模式 工厂方法 在前面的"设计模式"示例中,我们解释了当今常用的"工厂"模式. 在本节中,我们将了解具有更多抽象的更高级的解决方案. 该模式称为工厂方法设计 ...

  4. 4. 星际争霸之php设计模式--工厂方法模式

    题记 ============================================================================== 本php设计模式专辑来源于博客(jy ...

  5. java 工厂方法_java设计模式-工厂方法模式

    1.工厂方法(FactoryMethod)模式的定义 定义一个创建产品对象的工厂接口,将产品对象的实际创建工作推迟到具体子工厂类当中.这满足创建型模式中所要求的"创建与使用相分离" ...

  6. 设计模式 | 工厂方法模式及典型应用

    工厂方法模式 工厂方法模式(Factory Method Pattern):定义一个用于创建对象的接口,让子类决定将哪一个类实例化.工厂方法模式让一个类的实例化延迟到其子类. 工厂方法模式又简称为工厂 ...

  7. python工厂模式 django_python设计模式-工厂方法模式

    题目:假设你有一个 pizza 店,功能包括下订单.做 pizza,你的代码会如何写呢? def order_pizza(): pizza = Pizza() pizza.prepare() pizz ...

  8. 工厂方法模式_1天1个设计模式——工厂方法模式

    意图 工厂方法模式是一种创建型设计模式, 其在父类中提供一个创建对象的方法, 允许子类决定实例化对象的类型. 问题 假设你正在开发一款物流管理应用.1.0版本只能支持处理卡车运输,因此大部分的代码都位 ...

  9. [设计模式] ------ 工厂方法模式

    工厂方法模式 手机厂造手机,肥皂厂造肥皂,药品厂造药品. 假设有一大类对象A1,A2,A3,A4-他们都有一个共同的父类A A1可以想成是手机,A2可以想成肥皂- (下面例子的A1Factory就是手 ...

  10. JAVA设计模式 - 工厂方法模式

    工厂方法模式(Factory Pattern) 是一种创建型设计模式 , 它是Java中最常用的设计模式之一 . 1 . 工厂方法模式的定义 定义一个创建对象的接口 , 让子类决定实例化哪一个类 . ...

最新文章

  1. 对于正交频分复用的异构网络的理解
  2. 自动驾驶中实时车道检测和警报
  3. RSA加密和DH加密
  4. c# 微服务学习_微服务:学习几个容易混淆的URL注解
  5. 在IT行业对专业知识的掌握能力
  6. nodejs实践录:pm2使用
  7. 早鸟票只剩3天丨为何一定要参加今年的CNCC?
  8. 鼠标和按键在android 上的识别和区别
  9. 支付宝包下了9家报纸的头版,竟然是为了……
  10. 面向对象的程序设计特点
  11. 使用mustache js模板引擎
  12. easyswoole验证码的使用
  13. linux系统中jdk的卸载及安装
  14. ps2021没法用神经元滤镜,ps2021神经滤镜不能下载
  15. 2018药品目录匹配_本位码_众联社本位码匹配工具2018版破解版
  16. 最小采样频率计算公式_音频文件大小计算公式-好文转载
  17. Mysql中的straight_join
  18. 下载链接在微信中无法打开的解决方案
  19. 数据科学与大数据技术和计算机科学与技术哪个好
  20. DayDayUp:佛说:有果必有因。 黑格尔说:世界上没有无缘无故的爱,也没有无缘无故的恨。

热门文章

  1. Jenkins 在Windows下插件无法安装问题解决
  2. js add方法_Vue.js列表过渡
  3. python列表是顺序表还是链表_Python数据结构与算法(链表使用详解)
  4. matlab地址结构与转换,matlab数据类型和转换
  5. D. Beautiful numbers
  6. js如何将跨域打开的窗口放到最前面_程序员的强迫症-便捷打开常用网站
  7. mysql 5.6 emoji_让MySQL 5.6支持Emoji表情
  8. python保存mat文件_python读取文件——python读取和保存mat文件
  9. 计算机课程在线作业,计算机科学与技术作业答案
  10. Centos7开放及查看端口