设计模式之简单工厂模式
来源:互联网 发布:mac版steam怎么安装 编辑:程序博客网 时间:2024/05/01 10:27
今天开始研究设计模式,为此买了一本书,准备好好看看,毕竟只有掌握了原理性的东西才会有质的提高,垒砖民工不是我的目标,设计师才是。
简单工厂模式
简单工厂是用来创建合适的实现类的,怎么说呢,通过实例来说明比较好。
在面向接口编程中,客户端不需要知道接口的具体实现,那么如何得到接口的实例呢?可通过简单工厂的模式来获取
如:
/** * 定义一个接口A * * @author smile * */public interface A {/** * 接口中实现某功能的方法 */public void dosomting();}
然后,在定义一个接口A的实现类
public class ImplA implements A {@Overridepublic void dosomting() {System.out.println("我实现了接口A");}}
通常客户端会这样调用,A a=new ImpA();但是这样既知道了接口 有知道了实现类,与“封装隔离”的原则冲突,当然在小型项目中我觉得这样也行,假如非要纠结于封装隔离,那么就需要简单工厂来解决了。
定义一个Factory
/** * 一个工厂类用来创建接口的实现类实例 * * @author smile * */public class Factory {public static int type_A = 1;// A接口类型public static int type_B = 2;// B接口类型/** * 根据传进来的接口类型type参数来创建对应接口的实现类实例 * * @param type * 接口类型 * @return 接口实现类实例 */public static Object create(int type) {Object obj = null;// 创建接口A的实例if (type == type_A) {obj = new ImplA();} else if (type == type_B) {// 这里就省略了。。。。。}return obj;}}
那么,客户端就可以这样调用了:
A a=Factory.create(1);
这样客户端只需要得到接口的实例,就可以使用其有的功能了。将具体实现隔离开来,接口A是客户端与被隔离体之间的唯一桥梁。
- 设计模式 之简单工厂+ 工厂模式
- 设计模式之简单工厂设计模式
- 设计模式之简单工厂模式,工厂模式,策略模式
- 设计模式 之 简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂.
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 设计模式之简单工厂
- 第五周实验三
- 学C++第一个项目实现
- jquer选择器
- 如何打印 RichTextBox
- 第四周实验报告(1)
- 设计模式之简单工厂模式
- perl准确识别IP地址的语句
- objective-c中使用cocoa的NSPredicate,谓词(十四)
- 如何打印 DataGridView
- 2012C++程序设计实验报告【5.2】
- jquery 下滚效果
- HDU–1016题 Prime Ring Problem
- EhCache实现OSGi缓存bundle
- oracle 创建表和插入的相关注意事项