UML中的类图及类图之间的关系
关联和依赖的区别:依赖听起来比关联的耦合性更高,但事实上恰恰相反,依赖具体的表现是某个方法使用了非自身的对象,是一种弱耦合的关系,而关联则是某个对象由另一个对象组成,是一种强耦合的关系。
对接口编程而不是对实现编程。
优先使用对象组合而不是继承。
组合以及与继承的区别
为什么老鸟要告诉你优先使用组合而不是继承?
https://zhuanlan.zhihu.com/p/60282972
*23种设计模式汇总整理>>内容来源
*单例模式
饿汉模式是线程绝对安全的,因为饿汉模式是在类加载的时候就已经初始化了(此时线程还没创建,实例化=初始化+赋值),同时这也是它的缺点,有可能浪费了资源.
单例模式的八种写法比较
java单例之enum实现方式
*建造者模式和工厂模式
工厂模式注重的是整体对象的创建方法,而建造者模式注重的是对象的创建过程,创建对象的过程方法可以在创建时自由调用。原文
*适配器模式和桥接模式
适配器模式是将两个现有的但功能不完全相同的接口结合起来使用,本质是相融。
桥接模式是分离抽象和实现,实现功能的扩展,本质是分离。
*策略模式和模板模式
相同点:都是将核心算法进行封装。
不同点:前者是提供给使用者多种选择,而对于后者而言,使用者没得选择,只能按照规定的套路走或者参与其中的某些步骤,但是不能影响整体的流程。
设计模式之策略模式
*委派模式不属于23中设计模式之一,但是在Spring中应用广泛。委派模式=(代理模式+策略模式)的特殊组合,委派模式和代理模式的区别:前者为全权负责,后者只负责整个流程的一部分。在Spring中,以delegate/dispatcher结尾的类,大多为委派模式的应用。
*责任链模式
顾名思义,责任链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为型模式。
在这种模式中,通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推。
消灭成堆的分支语句之类责任链模式
*解释器模式,迭代器模式(不常用)