设计模式学习笔记之工厂模式
来源:互联网 发布:java培训有必要吗 编辑:程序博客网 时间:2024/04/30 19:01
工厂模式是提供了创建了对象的接口,将具体创建什么对象延迟到子类完成。
下面是工厂模式的实例:
有一个操作类的抽象类:
package com.DesignPolicyLearn.Factory;/* * author:Tammy Pi * function:操作的抽象类 */public abstract class Operation<T> {public abstract T operation(T t1,T t2);}
然后有一个加法类继承至操作类:
package com.DesignPolicyLearn.Factory;/* * author:Tammy Pi * function:加法操作的类 */public class AddOperation extends Operation {@Overridepublic Object operation(Object t1, Object t2) {//处理int类型if(t1 instanceof Integer && t2 instanceof Integer){return Integer.parseInt(String.valueOf(t1))+Integer.parseInt(String.valueOf(t2));}return null;}
然后有一个工厂的接口:
package com.DesignPolicyLearn.Factory;/* * author:Tammy Pi * function:工厂接口 */public interface IFactory {public Operation getOpeartion();}
然后有一个加法工厂,用于创建加法操作类:
package com.DesignPolicyLearn.Factory;/* * author:Tammy Pi * function:加法工厂 */public class AddFactory implements IFactory{@Overridepublic Operation getOpeartion() {return new AddOperation();}}
一个用于测试的类:
package com.DesignPolicyLearn.Factory;/* * author:Tammy Pi * function:用于测试的类 */public class Main {public static void main(String[] args){IFactory factory = new AddFactory();Operation add = factory.getOpeartion();int result = (Integer) add.operation(1,2);System.out.println("result is :"+result);}}
可以看到,工厂类和简单工厂类的区别是,如果是简单工厂模式,应该就是一个Factory,根据用户传入的参数,返回不同的Operation;而工厂模式,则提供的是创建Operation的接口,而将创建神马Operation交给实现类去完成。虽然暂时看不到工厂模式的好处,但存在即是合理的,估计这个模式也有它用的情况吧。
- 设计模式学习笔记之工厂模式
- 设计模式学习笔记之工厂模式
- 学习笔记:设计模式之工厂模式
- 设计模式学习笔记之工厂模式
- 学习笔记--设计模式之工厂模式
- 设计模式学习笔记之工厂模式
- 设计模式之工厂模式学习笔记
- 设计模式学习笔记之工厂模式
- 设计模式学习笔记之抽象工厂设计模式
- 设计模式学习笔记之(一、工厂模式)
- 设计模式之--抽象工厂模式(学习分析笔记)
- 设计模式之-工厂方法模式(学习分析笔记)
- .net设计模式之工厂模式学习笔记
- 设计模式学习笔记(四)之工厂模式(Factory)
- 设计模式学习笔记之简单工厂模式
- J2SE学习笔记:设计模式之工厂模式
- 【设计模式】学习笔记之简单工厂模式
- Java学习笔记---设计模式之简单工厂模式
- 图形旋转
- Objective C--备忘录模式
- 第四章 获取时间 关闭记事本程序 windows程序设计王艳平版
- [整理]windows下编译lame
- 判断系统是32位还是16位
- 设计模式学习笔记之工厂模式
- glPushMatrix()作用是什么
- 流光容易把人抛
- Objective C--适配器模式
- opengl
- 误解continue
- Devexpress 11.2 控件使用之 - DxValidationProvider
- vc窗口乱掉了
- .对话框添加快捷键