1.10种常用 设计模式
https://blog.csdn.net/dean_hu/article/details/71195133
2.30种设计模式 简介
http://www.runoob.com/design-pattern/proxy-pattern.html
3.多线程的单例模式
https://blog.csdn.net/cselmu9/article/details/51366946
4.原型模式
缺点: 1、配备克隆方法需要对类的功能进行通盘考虑,这对于全新的类不是很难,但对于已有的类不一定很容易,特别当一个类引用不支持串行化的间接对象,或者引用含有循环结构的时候。 2、必须实现 Cloneable 接口。
为什么必须实现接口, 仅是因为用if验证没实现接口就不执行吗, 自己写Test1,Test2,Test3 类进行验证,,,,和foreach的iterator的区别
5.单例模式
双检锁,这种方式采用双锁机制,安全且在多线程情况下能保持高性能。
getInstance() 的性能对应用程序很关键。
线程安全的懒汉,必须加锁 synchronized 才能保证单例,但加锁会影响效率。
getInstance() 的性能对应用程序不是很关键(该方法使用不太频繁)。
为什么两个 都使用了 加锁, 但是双检索性能要高。
6.适配器模式
如何解决:继承或依赖(推荐)。
关键代码:适配器继承或依赖已有的对象,实现想要的目标接口。
http://www.cnblogs.com/jiqing9006/p/5915023.html
7.访问者模式
为何 违反了 迪米特原则 和 依赖倒置原则