第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. 如何创建对象 编译时就要确定是创建哪一个对象