1.类之间的关系(uml类图)
依赖(方法引用)、关联(聚合、组合)、继承泛化、接口实现
2.设计模式的原则
单一原则、接口隔离、依赖|关联倒转、里氏替换、开闭原则、迪米特原则、合成复用原则
3.设计模式的分类及一句话概括
创建型类
3.1.单例模式
使用场景:一个类在当前的jvm中只有一个实例
实现方式:静态变量、静态代码块、懒加载线程不安全、懒加载+同步锁、懒加载+同步锁+volatile(推荐3🌟)、内部静态类(推荐4🌟)、枚举(推荐5🌟)
3.2.工厂模式
使用场景:一群可以倒转的类集合,可以方便的拿到想要的具体类
实现方法:简单工程、工厂方法、抽象工厂。类倒转,工厂也可以继续倒转。
3.3.原型模式
使用场景:想要快速复刻一个实例的当前状态
实现方法:jvm的cloneable浅复制 或序列化深度复制
3.4.建造者模式
使用场景:一个类有几种固定的处理方式可以集中到建造类
实现方法:建造类关联一个目标新实例,在建造类中对新实例做处理;建筑类倒转可以选择很多不同的建筑类;记得最后return处理完成的目标实例对象
3.5.适配模式
使用场景1:调用的目标方法不支持修改 但又要适配使用者
实现方法:类适配模式、对象适配模式;adapter继承或者关联调用的目标,再新增的方法内使用目标方法并增加自己的适配逻辑;adapter设计成倒转可以选择很多不同的适配类;
使用场景2: 我们在设计之初便想好了接口规范,让使用者可以灵活自己实现匿名内部类来自定义处理逻辑
实现方法:adapter继承一个抽象类,而抽象类实现定义的接口并空实现,adapter便可以随意重写任意方法(不还是倒转吗,只不过比单纯的倒转多了可选择实现的小技巧)
未完待续。。。。。
结构型类
行为型类
4.总结:
a.通过继承泛化抽象类、实现抽象接口的方式实现倒转,通过依赖、关联的方式实现注入
b.继承的耦合要大于关联,尽量避免使用继承(不是说倒转场景)
c.可以灵活使用泛型和反射
原文地址:http://www.cnblogs.com/xuetieqi/p/16847339.html