java设计模式(创建型)之工厂方法模式
来源:互联网 发布:db2 删除数据库 编辑:程序博客网 时间:2024/05/29 19:04
第0章:简介
工厂方法模式定义:定义一个用于创建对象的接口,让子类决定实例化哪一个类,使一个类的实例化延迟到其子类工厂方法模式的实质:延迟到子类来选择实现
参考:研磨设计模式(书籍),大话设计模式(书籍)
模式图:
待补充第1章:实践
(1)接口类(Intf.java)
package com.mcc.core.designPattern.build.simpleFactory;/**
* 接口
*
* @author <a href="mailto:417877417@qq.com">menergy</a>
* DateTime: 14-3-9 上午12:24
*/
public interface Intf {
public void someMethod();
}
(2)实现类A(IntfImplA.java)
package com.mcc.core.designPattern.build.simpleFactory;/**
* 实现类A
*
* @author <a href="mailto:417877417@qq.com">menergy</a>
* DateTime: 14-3-9 上午12:28
*/
public class IntfImplA implements Intf {
@Override
public void someMethod() {
System.out.println("实现类A");
}
}
(3)实现类B(IntfImplB.java)
package com.mcc.core.designPattern.build.simpleFactory;/**
* 实现类B
*
* @author <a href="mailto:417877417@qq.com">menergy</a>
* DateTime: 14-3-9 上午12:28
*/
public class IntfImplB implements Intf {
@Override
public void someMethod() {
System.out.println("实现类B");
}
}
(4)创建器类(Creater.java)
/**
* 创建器,声明工厂方法
*
* 工厂方法模式定义:定义一个用于创建对象的接口,让子类决定实例化哪一个类,使一个类的实例化延迟到其子类
* 工厂方法模式本质:延迟到子类来选择实现
*
* @author <a href="mailto:417877417@qq.com">menergy</a>
* DateTime: 14-3-9 上午12:49
*/
public abstract class Creater {
//创建对象的工厂方法,具体由子类实现创建过程
protected abstract Intf factoryMethod();
public void otherMethod(){
System.out.println("工厂方法创建器,需子类实现创建过程");
}
}
(5)A对象工厂类(FactoryA.java)
package com.mcc.core.designPattern.build.factoryMethod;
/**
* A对象工厂
*
* @author <a href="mailto:417877417@qq.com">menergy</a>
* DateTime: 14-3-9 上午12:55
*/
public class FactoryA extends Creater {
@Override
protected Intf factoryMethod() {
//创建A对象
return new IntfImplA();
}
}
(6)B对象工厂类(FactoryB.java)
package com.mcc.core.designPattern.build.factoryMethod;/**
* B对象工厂
*
* @author <a href="mailto:417877417@qq.com">menergy</a>
* DateTime: 14-3-9 上午12:59
*/
public class FactoryB extends Creater {
@Override
protected Intf factoryMethod() {
//创建B对象
return new IntfImplB();
}
}
(7)客户端测试类(Client.java)
package com.mcc.core.designPattern.build.factoryMethod;/**
* 客户端测试
*
* @author <a href="mailto:417877417@qq.com">menergy</a>
* DateTime: 14-3-9 上午1:02
*/
public class Client {
public static void main(String args[]){
//生产A对象
Intf intfA = new FactoryA().factoryMethod();
intfA.someMethod();
//生产B对象
Intf intfB = new FactoryB().factoryMethod();
intfB.someMethod();
}
}
0 0
- java设计模式(创建型)之工厂方法模式
- java设计模式之创建型模式-工厂方法模式
- JAVA设计模式创建型模式之工厂方法
- java设计模式之创建型模式-FactoryMethod ( 工厂方法 )
- java 设计模式-创建模式之工厂方法模式1
- java 设计模式-创建模式之工厂方法模式2
- java设计模式 -------- 创建模式 之 工厂方法模式
- Java设计模式之创建型模式--工厂方法及抽象工厂模式
- JAVA设计模式学习之----创建模式:工厂模式(工厂方法)
- java设计模式(创建型)之简单工厂模式
- java设计模式(创建型)之抽象工厂模式
- 设计模式之---创建型模式(一)--工厂方法模式
- JAVA设计模式(01):创建型-工厂模式【工厂方法模式】(Factory Method)
- JAVA设计模式(01):创建型-工厂模式【工厂方法模式】(Factory Method)
- JAVA设计模式(24):创建型-工厂模式【工厂方法模式】(Factory Method)
- JAVA设计模式(01_1):创建型-工厂模式【工厂方法模式】(Factory Method)
- "围观"设计模式(8)--创建型之简单工厂模式、工厂方法模式、抽象工厂模式
- "围观"设计模式(8)--创建型之简单工厂模式、工厂方法模式、抽象工厂模式
- 路上依旧灿烂
- <%#Eval( "id","adapter.aspx?ID={0} ")%>
- 人际关系经验
- IsPostBack的用法
- IE的有条件注释详解(附实例代码)
- java设计模式(创建型)之工厂方法模式
- 提问的智慧
- 阻塞,非阻塞,同步,异步
- 关于VS "error LNK2005: 已经在 .obj 中定义"
- Hibernate学习积累(1)
- 百度移动端搜索引擎优化的十个要点
- 永不泯灭的初恋
- 如何将frm格式myd格式文件导入mysql
- php中session_start()函数的作用