设计模式-1 简单工厂设计模式
2018-01-11 10:40
253 查看
简单工厂不是一个标准的设计模式,但是他太常用,有简单,所以这是第一个热身运动
java接口是一种特殊的抽象类,跟一般抽象类相比,接口里面的所有方法都是抽象方法,接口里面的所有方法都是抽象,所以属性都是常量.也就是说,接口只有方法定义而没有实现;
用处
定义实现类的外观,约束实现类的行为.接口相当于一份契约,根据外包应用需要的功能,约定实现类应该要实现的功能.
接口的思想
浓缩下来:“封装隔离”:对被隔离体行为的封装,或者对被隔离体职责的封装;而隔离指的是外部调用和内部实现,外部调用只能通过接口进行调用,外包调用是不知道内部具体实现的,也就是说外包调用和内部实现是被接口隔离开的
使用接口的好处
外包调用和内部实现被接口隔离,那么只有接口不变,内部实现的变化就不会影响到外部应用,从而使得系统更灵活,扩展性和可危害性;”接口是系统可插拔性的保证”
接口和抽象的选择
1.优先选择接口 2.既要定义子类的行为又要为子类提供公共的功能时选择抽象类
每一个层里面,又有许多小模块,每个模块对外则是一个整体,所以一个模块对外应该提供接口,其他地方需要使用到这个模块的功能时,可以通过此接口来进行调用.”接口是被其隔离部分的外观”
那么”组件”是什么东西?
组件就是能完成一个功能的封装体.
在以上代码的时候,在客户端,既有接口,又有实现类,与思想”封装隔离”不符合?
那么我们如何做得只只接口不知实现呢?
解决方案:简单工厂
简单工厂能帮助我们真正地开始面向接口编程,像以前的做法,其实只是用到接口的多态部分的功能,而最重要的”封装隔离性”并有没体现出来
疑问:把”new Impl()”放到客户端和放到简单工厂里面有什么不同?
简单工厂的位置是位于封装体内的,也就是简单工厂是根接口和具体的实现在一起的,算是封装体内部的一个类,所以简单工厂知道具体的实现类是没有关系额.重新整理一下简单工厂的结构图
简单工厂的写法:
1.传人type:
由于从客户端调用工厂的时候传人参数,就说明客户端必须hide每个参数的含义,也需要理解每个参数对应的功能处理,这就要求必须在一定程度上向客户暴露一定的内部实现细节
2.使用配置文件和反射技术
简单工厂的本质是:选择实现
接口回顾
Java接口的概念:java接口是一种特殊的抽象类,跟一般抽象类相比,接口里面的所有方法都是抽象方法,接口里面的所有方法都是抽象,所以属性都是常量.也就是说,接口只有方法定义而没有实现;
用处
定义实现类的外观,约束实现类的行为.接口相当于一份契约,根据外包应用需要的功能,约定实现类应该要实现的功能.
接口的思想
浓缩下来:“封装隔离”:对被隔离体行为的封装,或者对被隔离体职责的封装;而隔离指的是外部调用和内部实现,外部调用只能通过接口进行调用,外包调用是不知道内部具体实现的,也就是说外包调用和内部实现是被接口隔离开的
使用接口的好处
外包调用和内部实现被接口隔离,那么只有接口不变,内部实现的变化就不会影响到外部应用,从而使得系统更灵活,扩展性和可危害性;”接口是系统可插拔性的保证”
接口和抽象的选择
1.优先选择接口 2.既要定义子类的行为又要为子类提供公共的功能时选择抽象类
面向接口编程是Java编程的重要原则
通常,java程序分为:表现层,逻辑层,数据层,他们之间都有通过接口来通讯每一个层里面,又有许多小模块,每个模块对外则是一个整体,所以一个模块对外应该提供接口,其他地方需要使用到这个模块的功能时,可以通过此接口来进行调用.”接口是被其隔离部分的外观”
那么”组件”是什么东西?
组件就是能完成一个功能的封装体.
Api api = new Imple()
在以上代码的时候,在客户端,既有接口,又有实现类,与思想”封装隔离”不符合?
那么我们如何做得只只接口不知实现呢?
解决方案:简单工厂
简单工厂能帮助我们真正地开始面向接口编程,像以前的做法,其实只是用到接口的多态部分的功能,而最重要的”封装隔离性”并有没体现出来
疑问:把”new Impl()”放到客户端和放到简单工厂里面有什么不同?
简单工厂的位置是位于封装体内的,也就是简单工厂是根接口和具体的实现在一起的,算是封装体内部的一个类,所以简单工厂知道具体的实现类是没有关系额.重新整理一下简单工厂的结构图
简单工厂的写法:
1.传人type:
由于从客户端调用工厂的时候传人参数,就说明客户端必须hide每个参数的含义,也需要理解每个参数对应的功能处理,这就要求必须在一定程度上向客户暴露一定的内部实现细节
2.使用配置文件和反射技术
简单工厂的本质是:选择实现
相关文章推荐
- Java设计模式之简单工厂模式
- 2. JavaScript 设计模式(简单工厂,工厂方法,抽象工厂)
- 设计模式:简单工厂、工厂方法、抽象工厂之小结与区别【转】
- 设计模式心得笔记--简单工厂和策略模式
- 设计模式1:简单工厂模式【创建型】
- XML第十二讲:设计模式:简单工厂模式
- Java 设计模式之 简单工厂模式
- PHP设计模式之简单工厂模式
- java设计模式--简单工厂
- 简单工厂设计模式的好处
- 设计模式——简单工厂
- java设计模式学习笔记-简单工厂模式
- 设计模式:简单工厂、工厂方法、抽象工厂之小结与区别
- Java 23种设计模式之简单工厂模式
- java设计模式之简单工厂模式
- 【设计模式】01、简单工厂设计模式
- 简单理解常用设计模式(一)简单工厂-附加UML解释
- C#设计模式(二)简单工厂模式
- 【设计模式】策略模式PK简单工厂模式
- 设计模式---简单工厂