就我个人而言,一般情况下直接使用饿汉式就好了,如果明确要求要懒加载(lazy initialization)会倾向于使用静态内部类。
代理模式 (proxy-pattern) 注:这里手写Proxy、InvocationHandler 了解了思想,但是手写还是不能完成,以后慢慢消化、练习,ヾ(◍°∇°◍)ノ゙
- 提高代码复用性 将相同部分的代码放在抽象的父类中
- 提高了拓展性 将不同的代码放入不同的子类中,通过对子类的扩展增加新的行为
- 实现了反向控制 通过一个父类调用其子类的操作,通过对子类的扩展增加新的行为,实现了反向控制 & 符合“开闭原则”
- 引入了抽象类,每一个不同的实现都需要一个子类来实现,导致类的个数增加,从而增加了系统实现的复杂度。