您的位置:首页 > 其它

多种设计模式核心思想对比

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的格式
策略模式接口的组合,一个接口是另一个接口实现类的组合。封装行为的细节。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: