设计模式
首先来说说什么是设计模式,设计模式在百度百科中的解释为:设计模式(DesignPattern)是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。
设计模式主要考虑的两点:
- 变继承关系为组合关系
- 如何创建对象
Singletons模式
Singletons模式即单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中,应用该模式的一个类只有一个实例。即一个类只有一个对象实例。
singletions是属于比较好理解的设计模式,也是被滥用最多的
优点:
-
确保全局至多只有一个对象
-
用于构造缓慢的对象,需要统一管理的资源
缺点:
- 很多全局状态,线程安全性
Singletong的创建
双层锁模式 Double checked loncking
作为Java类的静态变量
使用框架提供的能力
State模式
State模式即状态模式主要解决的是当控制一个对象状态的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类中,可以把复杂的判断逻辑简化。
State模式实现
- 不要用继承关系来实现代码的复用
- 要使用设计模式来实现代码的复用
Decorator模式
Decorator模式即装饰模式指的是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。
如何创建对象
用new来创建对象的缺点
- 编译时必须决定创建哪个类的对象
- 参数意义不明确
这里介绍两种设计模式:
-
Abstract Factory Pattern 即抽象工厂模式,可以使代码更好
-
Builder Pattern 即生成器模式,用来解决参数意义不明确
这是我对设计模式的总结笔记,希望能对你们也有帮助,有什么问题可以一起交流。(PS:这里补上周六的笔记)