1.单例模式代码设计
单例模式:一个类不管创建多少次对象,永远只能得到该类型一个对象的实例。
常用的:日志模块、数据库模块
饿汉式单例模式:还没有获取实例对象,实例对象就已经产生了
懒汉式单例模式:唯一的实例对象,直到第一次获取它的时候,才产生
饿汉式一定是线程安全的;但是会延长软件的启动时间
懒汉式模式:变成指针。
2. 线程安全的懒汉单例模式
可重入:没有执行完又被调用一次
开辟内存 ⇒ 构造对象、赋值(这两个不保证执行顺序)
有可能出现线程 1 运行后还没来得及赋值线程 2 也进去了
也可以用 static 实现
3. 简单工厂和工厂方法
简单工厂,一个工厂把所有的产品都造,同时也不符合“开闭”原则
可以通过一个基类向外拓展。实现了修改关闭、拓展打开
4. 抽象工厂
现在考虑生产一类产品
缺点:重写接口很麻烦
5. 代理模式
实现了逻辑与实现的解耦
6. 装饰器模式
7.适配器模式(除了单例和工厂,这个比较重要)
8. 观察者模式