设计模式:
策略模式:
分别封装行为接口,实现算法族,超类里放行为接口对象,在子类里具体设定行为对象。原则就是:分离变化部分,封装接口,基于编程各种功能。此模式让行为算法的变化独立于算法的使用者
**注意点**:
1. 分析变化于不变化部分
2. 多用组合少用继承;用行为类组合,而不是行为继承,使用组合行为,实现功能。
观察者模式:
对象之间多对一依赖的一种设计模式,被依赖的对象通知依赖对象。
**注意点**:
1. JAVA内置观察者模式
i. 先进后出。
ii. 内置两个函数: 1.通过规定参数传递。2.通过观察者获取数据解析
iii. 不能多继承,无法实现定制
iv. 通知前需要设置更改调用 setChanged();
2. 自定义观察者模式
i. 可以实现先进先出
ii. 可以实现定制
装饰者模式
1. 就像一个快递,包含主体与包装物
2. 动态的将新功能附加到对象上。在对象功能扩展方面比继承更富有弹性。
3. 开放-关闭原则的设计。
4. java内置I/O设计就是装饰者模式
单例模式
1. 确保一个类最多只有一个实例,并提供一个全局访问点
2. 考虑多线程问题,防止同一时刻意外。确保唯一性与安全性。优化:
i. Synchronized 方法上, 耗资源, 不频繁使用可以用
ii. "急切" 创建实例,定义对象时直接创建,对于不使用此工厂时,占用内存
iii. 双重检查加锁 , 创建时只会进行一次加锁
PS: 只是简单理解随便写写,未完待续。