多种设计模式核心思想对比
2016-01-06 22:11
162 查看
代理模式 | 静态(一接口一代理),动态(一代理多接口)和CGLib(一代理多类或者接口,与接口解绑)。与买房子相似,不方便了解对方的细节 |
工厂模式 | 一个工厂,多个产品继承一个接口(一个系列产品) 也可以一个工厂,多个创建方法,创建不同系列的产品 |
抽象工厂 | 多个工厂继承一个接口,每个工厂生产各自系列的产品 |
装饰模式 | 顾名思义,装饰模式就是给一个对象增加一些新的功能,而且是动态的,要求装饰对象和被装饰对象实现同一个接口,装饰对象持有被装饰对象的实例。避免出现过多的子类。 Source类是被装饰类,Decorator类是一个装饰类,可以为Source类动态的添加一些功能。Source和Decorator共同继承Sourceable接口,Sourceable接口又是Decorator的属性。Decorator丰富Source的功能。 |
观察者模式 | 观察对象通知观察者,观察对象控制观察者的数量,可增减 |
命令模式 | 将军,命令和士兵。命令是将军的属性,士兵是命令的属性,将军为命令指定士兵去执行。 |
Builder模式 | Builder模式是侧重于组装零件。工厂模式侧重于生产零件。 |
适配者模式 | 适配器主要是为了解决接口转换的问题 1-类的适配器模式:当希望将一个类转换成满足另一个新接口的类时,可以使用类的适配器模式,创建一个新类,继承原有的类,实现新的接口即可。(继承Source类) 2-对象的适配器模式:当希望将一个对象转换成满足另一个新接口的对象时,可以创建一个Wrapper类,持有原类的一个实例,在Wrapper类的方法中,调用实例的方法就行。(组合Source类,把Source当成属性) 3-接口的适配器模式:当不希望实现一个接口中所有的方法时,可以创建一个抽象类Wrapper,实现所有方法,我们写别的类的时候,继承抽象类即可。加一层抽象类,避免实现接口的所有方法,只实现需要的方法。 |
原型模式 | 原型模式虽然是创建型的模式,但是与工程模式没有关系,从名字即可看出,该模式的思想就是将一个对象作为原型,对其进行复制、克隆,产生一个和原对象类似的新对象 |
桥接模式 | 桥接模式就是把事物和其具体实现分开,使他们可以各自独立的变化。桥接的用意是:将抽象化与实现化解耦,使得二者可以独立变化,像我们常用的JDBC桥DriverManager一样,JDBC进行连接数据库的时候,在各个数据库之间进行切换,基本不需要动太多的代码,甚至丝毫不用动,原因就是JDBC提供统一接口,每个数据库提供各自的实现,用一个叫做数据库驱动的程序来桥接就行了 |
外观模式 | 类与类之家的关系;例如Computer和(CPU、Memory、Disk)三者之间的关系,Computer是个大的概念 |
单例模式 | JVM虚拟机里面唯一的对象,如日志 |
组合模式 | 自己包含自己,有多个简单的对象构成一个复杂的对象。Tree和XML的格式 |
策略模式 | 接口的组合,一个接口是另一个接口实现类的组合。封装行为的细节。 |
相关文章推荐
- Qt学习 之 多线程程序设计(QT通过三种形式提供了对线程的支持)
- 美好生活
- 抽象工厂模式 c#
- MyBatis Generator产生的Example类
- JDK配置步骤
- 24. Swap Nodes in Pairs
- 2015’12杭电校赛1005 Bitwise Equations(二进制找规律)
- QT5下获取本机IP地址、计算机名、网络连接名、MAC地址、子网掩码、广播地址
- HDU 1024 Max Sum Plus Plus (若干子区间求解最大值)
- Service与Android系统实现(1)-- 应用程序里的Service
- 树莓派错误“No space left on device”
- Bootstrap导航元素
- 6.学习操作系统之设备管理
- IOS开发中 类、对象、实例变量、成员变量、属性变量等区别和关系
- 二维最大类间方差(otsu)matlab实现源码
- 一句话木马上传常见的几种方法
- 仿函数应用详解
- 几种大数据框架的对比
- iPhone手机的屏幕尺寸、分辨率及适配
- 关于fedora14更换主板后或ghost系统后网络无法连接的解决办法