设计模式学习笔记之工厂模式
2012-08-10 09:08
507 查看
工厂模式是提供了创建了对象的接口,将具体创建什么对象延迟到子类完成。
下面是工厂模式的实例:
有一个操作类的抽象类:
然后有一个加法类继承至操作类:
然后有一个工厂的接口:
然后有一个加法工厂,用于创建加法操作类:
一个用于测试的类:
可以看到,工厂类和简单工厂类的区别是,如果是简单工厂模式,应该就是一个Factory,根据用户传入的参数,返回不同的Operation;而工厂模式,则提供的是创建Operation的接口,而将创建神马Operation交给实现类去完成。虽然暂时看不到工厂模式的好处,但存在即是合理的,估计这个模式也有它用的情况吧。
下面是工厂模式的实例:
有一个操作类的抽象类:
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 { @Override public 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{ @Override public 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交给实现类去完成。虽然暂时看不到工厂模式的好处,但存在即是合理的,估计这个模式也有它用的情况吧。
相关文章推荐
- HeadFirst 设计模式学习笔记4--工厂模式
- 设计模式学习笔记三:简单工厂(Simple Factory)
- J2SE学习笔记:设计模式之工厂模式
- iOS学习笔记(5)——设计模式之工厂方法、抽象工厂
- 设计模式学习笔记(3)工厂方法
- 设计模式:工厂模式(学习笔记)
- 设计模式学习笔记之工厂模式
- 设计模式学习笔记-----工厂模式
- 设计模式学习笔记二:简单工厂模式
- Java-马士兵设计模式学习笔记-工厂模式-单例及多例
- Java-马士兵设计模式学习笔记-工厂模式-抽象工厂模式
- HeadFirst 设计模式学习笔记4--工厂模式
- 设计模式学习笔记(一):简单工厂
- 设计模式学习笔记二:简单工厂模式
- Java-马士兵设计模式学习笔记-工厂模式-用Jdom模拟Spring
- [知了堂学习笔记]_设计模式之工厂模式
- 设计模式学习笔记(四)--工厂模式
- 一 简单工厂模式——设计模式学习笔记
- 设计模式学习笔记(7):工厂模式(3)
- 设计模式学习笔记(三)--工厂模式