设计模式

https://github.com/CyC2018/CS-Notes/blob/master/notes/设计模式.md#1-单例singleton

创建型

1. 单例(Singleton)

https://blog.csdn.net/jason0539/article/details/23297037

关注点

  • 懒汉模式-线程不安全
  • 懒汉模式-线程安全
  • 饿汉模式-线程安全
  • 双重校验锁-线程安全: 为什么双重校验使用两个if判断?==线程安全保证
    为什么静态变量要使用volatile修饰?==防止指令重排

2. 简单工厂(Simple Factory)

简单工厂模式因为每增加一个新的产品,都得需要在工厂类中新增响应的商业逻辑和判断逻辑,所以违背了开闭原则;
适用的范围:简单的业务,或者具体很少出现增加功能的业务

3. 工厂方法(Factory Method)


优点:解决了简单工厂模式中违反开闭原则的,如果增加新的功能,只需要实现一个具体的产品子类就行,不需要修改原来的工厂类;
缺点:增加产品的时候,会增加一个新产品工具类,增加开发量
四个角色:抽象工厂类、具体工厂类、抽象产品类、具体产品类

4. 抽象工厂(Abstract Factory)

5. 原型模式(Prototype)

思想:原型类中定义构造函数和克隆方法,可以通过构造函数实现原型类的实例对象,如果需要拷贝原型对象,则可以通过克隆方法实现,使用原型实例对象调用方法;

克隆对象的方法调用是拷贝:拷贝分为浅拷贝和深拷贝。
浅拷贝:仅仅拷贝对象本身,还包括基本变量
深拷贝:不仅包括对象本身,还包括引用的所有对象

行为型

1. 责任链(Chain Of Responsibility)


思路:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链发送该请求,直到有一个对象处理它为止。

结构型

1. 外观(Facade)

思路:提供了一个统一的接口,用来访问子系统中的一群接口,从而让子系统更容易使用

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
正在热议
更多
# 长得好看会提高面试通过率吗? #
5673次浏览 55人参与
# 百度工作体验 #
316398次浏览 2233人参与
# 米连集团26产品管培生项目 #
7794次浏览 236人参与
# 沪漂/北漂你觉得哪个更苦? #
1974次浏览 46人参与
# 离家近房租贵VS离家远但房租低,怎么选 #
16971次浏览 137人参与
# 春招至今,你的战绩如何? #
17163次浏览 154人参与
# 巨人网络春招 #
11610次浏览 232人参与
# 你的实习产出是真实的还是包装的? #
3780次浏览 62人参与
# HR最不可信的一句话是__ #
1232次浏览 34人参与
# AI面会问哪些问题? #
1147次浏览 31人参与
# 你做过最难的笔试是哪家公司 #
1498次浏览 24人参与
# AI时代,哪个岗位还有“活路” #
3226次浏览 56人参与
# 不考虑薪资和职业,你最想做什么工作呢? #
153020次浏览 889人参与
# 简历第一个项目做什么 #
32303次浏览 374人参与
# 军工所铁饭碗 vs 互联网高薪资,你会选谁 #
8093次浏览 44人参与
# 简历中的项目经历要怎么写? #
311444次浏览 4292人参与
# XX请雇我工作 #
51172次浏览 172人参与
# 投格力的你,拿到offer了吗? #
178488次浏览 891人参与
# 你最满意的offer薪资是哪家公司? #
77068次浏览 375人参与
# AI时代,哪些岗位最容易被淘汰 #
65158次浏览 923人参与
# 秋招白月光 #
731903次浏览 5441人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
187737次浏览 1123人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务