设计模式-创建型模式#工厂方法FactoryMethod
来源:互联网 发布:人工智能编程语言 编辑:程序博客网 时间:2024/05/16 03:15
此例子是java的23种设计模式中的例子,很久以前就看了。今天下班看来部电影《战狼》,看完了没什么事就翻了一下书,重温了一次,以此做下笔记。
FactoryMethod工厂方法
定义一个用于创建对象的接口,让子类决定实例化哪一个类。FactoryMethod使一个类的实例*延伸到其子类。
适用性
1、当一个类不知道它所必须创建的对象的类的时候。
2、当一个类希望由它的子类来指定它所创建的对象的时候。
3、当*将创建对象的职责委托给多个帮助*类中的某一个。并且*将希望哪一个
帮助子类是代理者这一信息局部化的时候。
参与者
1、Product
定义工厂方法所 创建的对象的接口。
2、ConcreteProduct
实现Product接口
3、Creator
声明工厂方法,该方法返回一个Product类型的对象
Creator也可以定义一个工厂方法的缺省实现,它返回一个缺省的
ConcreteProduct对象。
可以调用工厂方法以创建一个Product对象。
4、ConcreteCreator
重定义工厂方法以返回一个ConcreteProduct实例。
类图:
*roduct
package com.dsp;public interface Work {void doWork();}
package com.dsp;public class StudentWork implements Work {@Overridepublic void doWork() {System.out.println("学生做作业!");}}
package com.dsp;public class TeacherWork implements Work {@Overridepublic void doWork() {System.out.println("老师审批作业!");}}
package com.dsp;public interface IWorkFactory {Work getWork();}
package com.dsp;public class StudentWorkFactory implements IWorkFactory {@Overridepublic Work getWork() {return new StudentWork();}}
package com.dsp;public class TeacherWorkFactory implements IWorkFactory {@Overridepublic Work getWork() {return new TeacherWork();}}
package com.dsp;public class Test {/** * @param args */public static void main(String[] args) {IWorkFactory studentWorkFactory = new StudentWorkFactory();studentWorkFactory.getWork().doWork();IWorkFactory teacherWorkFactory = new TeacherWorkFactory();teacherWorkFactory.getWork().doWork();}}
控制台输出:
学生做作业!
老师审批作业!
0 0
- java设计模式之创建型模式-FactoryMethod ( 工厂方法 )
- 创建型设计模式之工厂方法模式FactoryMethod
- 设计模式(二)工厂方法模式(FactoryMethod)-创建型
- 设计模式-创建型模式#工厂方法FactoryMethod
- 设计模式-创建型模式:工厂方法FactoryMethod
- 设计模式--创建型-FactoryMethod(工厂方法)
- 创建型模式-FactoryMethod ( 工厂方法 )
- 设计模式--工厂方法(FactoryMethod)
- 设计模式工厂方法(FactoryMethod)
- 设计模式之--工厂方法模式(FactoryMethod )
- 设计模式 -- 工厂方法模式 FactoryMethod
- 设计模式之工厂方法模式(FactoryMethod)
- 设计模式-工厂方法模式-factorymethod-python
- 创建型模式之工厂方法模式(FactoryMethod)
- 工厂方法模式(FactoryMethod)——创建型模式
- 面向对象设计模式之FactoryMethod工厂方法模式(创建型)
- FactoryMethod 工厂方法模式
- 工厂方法模式(FactoryMethod)
- Android studio设置背景图片
- 基础总结篇之一:Activity生命周期
- 基于数组实现Java 自定义Stack栈类及应用
- java基础—GUI概述
- 一维数组和数组指针
- 设计模式-创建型模式#工厂方法FactoryMethod
- linux系统详细目录说明
- 算法导论 python代码 第十二章
- pulltorefresh工程研究(二)
- Bitmap处理 之一 简介
- 使用ANT打包Android应用
- UIScrollView常见属性
- 记录我第一次在Android开发图像处理算法的经历
- linux常用命令总结 (一)