第8讲 设计模式
1. 单例模式 Singleton
设计模式的提出:博士论文
设计 vs 语言限制 更多的模式: 并发模式、架构模式 从架构的思想上看
Singleton优缺点
- 确保全局至多只有一个对象
- 用于: 构造缓慢的对象,需要统一管理的资源
- 缺点: 很多全局状态, 线程安全性
Singleton的创建(创建非常慢的对象)
- 双重锁模式 Double checked locking
- 作为Java 类的静态变量(程序初始化的时候就要创建出来)
- 使用框架提供的能力
依赖注入的框架(DI框架 Spring, Google Juice)
2. State 模式 变继承关系为组合关系
继承关系
- 描述is-a关系 复用,增加修改
- 不用用继承关系来实现复用
- 使用设计模式实现复用
如果 Employee 升级成了 Manager ?
新建成一个Manager, 原先的引用应该被回收。
或者使用state模式
3. Decorator模式 装饰者模式
1interface Runable{
2 void run();
3}
如何实现LoggingRunable, TransactionRunable, ….
开始运行,运行结束,运行持续是时间
commit, roll back
4. 如何创建对象
- 编译时就要确定是创建哪一个对象