代理模式 | 静态(一接口一代理),动态(一代理多接口)和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的格式 |
策略模式 | 接口的组合,一个接口是另一个接口实现类的组合。封装行为的细节。 |
多种设计模式核心思想对比
最新推荐文章于 2023-04-28 12:06:22 发布