设计模式总结

一、设计模式简介

设计模式可以看成是一类特定问题的核心解决方案。我们遇到的问题一般都可以被归纳成有限的几种类型,每个类型的问题都在重复发生,经过长时间的探索和实践,前人已经总结出一些针对这些特定类型问题的有效解决方案,这些方案就可以看作一种设计模式。
举个例子,一个人在生活中会碰到很多个需要从地点A到达地点B的情况,比如从家到公司,从公司到出差地点,从家到旅游目的地等等。经过长时间的实践和总结,发现距离<3km或公费时打车是最合适的,距离在3km-20km之间且自费时地铁+共享单车最合适,跨城市时打车+高铁最合适,那么这几种方案就可以看作是几种设计模式,当有另一个从地点A到地点B的问题出现时,就可以先归类,然后套用已有的出行方案来解决。
使用设计模式有以下几种好处:
1、设计模式本身是经过大量实践检验的,是一种高效的解决方案,尤其对于缺乏经验的新手程序员来讲,这些设计模式是更优的方案。
2、设计模式本身是经过抽象提取的,是适合去解决一类特定类型问题的,意味着设计模式复用性很强,可以用来重复的解决同一类型的多个问题。
3、设计模式提供了一种标准语库,即开发人员说出某一种设计模式,其他人可以快速领会该人员的设计思想,使开发人员能够更有效率地沟通和理解彼此的设计意图。
目前常用的设计模式有23种,可以分成三大类:
1、创建型
关心如何设计类和创建对象
2、结构型
关心类之间的灵活组合
3、行为型
关心类之间的信息传递和交互

二、创建型设计模式

创建型设计模式有以下几种:
工厂模式(Factory Pattern)
抽象工厂模式(Abstract Factory Pattern)
单例模式(Singleton Pattern)
建造者模式(Builder Pattern)
原型模式(Prototype Pattern)
1、工厂模式和抽象工厂模式
应用场景:工厂有华硕厂和惠普厂,分别生产华硕键盘、华硕鼠标和惠普键盘惠普鼠标。
https://www.runoob.com/design-pattern/abstract-factory-pattern.html
第一篇笔记

2、单例模式
应用场景:windows系统资源管理器和回收站不管点开多少次都是同一个窗口而不是新开。
https://blog.csdn.net/zhanghuaichao/article/details/79459130?spm=1001.2101.3001.6650.2&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-2-79459130-blog-131154159.235%5Ev43%5Epc_blog_bottom_relevance_base4&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-2-79459130-blog-131154159.235%5Ev43%5Epc_blog_bottom_relevance_base4&utm_relevant_index=5
关于类中包含自身:
https://blog.csdn.net/shltsh/article/details/45949347

三、结构性模式

适配器模式
应用场景:该模式不适用于产品设计之初,适合已经在服役的产品新增了需求,需要原有代码进行适配。例如原来有虎类,现在新增飞虎,可以通过适配器给原来的虎增加一个飞的接口。
https://blog.csdn.net/qq_30457077/article/details/128741751

桥接模式
https://blog.csdn.net/weixin_42097108/article/details/133625901
把几类特征抽象提取出来,再将抽象特性连接(绑定)到一起。

四、行为型模式

观察者模式
应用场景:1、房产中介,客户1对123房型感兴趣,客户2对134房型感兴趣,当市场上出现23房型时,分别通知客户1和客户2过来看房。2、不同图表如柱状图直方图来自于同一份数据,数据变动所有图标一起更新。
https://blog.csdn.net/QIANGWEIYUAN/article/details/88745835

参考链接:

https://www.runoob.com/design-pattern/design-pattern-intro.html

  • 41
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值