《Head First设计模式》书中的23种设计模式的应用场景、现实类比


设计模式作为一门艺术,我认为有三个特点:
1.行话:一听就知道是内行,节约双方沟通时间,通过一个观察者模式就知道整体实现。
2.抽象:能把思维提高到架构设计层面,不用细节到对象、类的具体实现这种琐碎的事上。
3.经验:设计模式作为OOP的最佳实践,是前人深思熟虑、经受时间考验的成果。

《Head First设计模式》书中所介绍的模式:

模式分类常用的23种模式一句话描述应用场景现实类比
创建型

单例模式(Singleton)

确保一个类只有一个实例,并提供一个全局访问点。线程池、对话框多人共享一台打印机
构建模式(Builder)(生成器模式)封装复杂对象,可动态创建和改变,隐藏内部实现。可组合对象封装KFC不同的套餐
原型模式(Prototype)

提供基类创建对象种类,通过拷贝新种类创建新的对象。

clone()方法细胞分裂、以太猫
抽象工厂模式(Abstract Factory)使用组合,创建对象的家族,而无需指定他们的具体类。生成不同操作系统的程序QQ换肤、政府管理公司(工厂)
工厂方法模式(Factory Method)使用继承,由子类决定要创建的具体类是哪一个。写日志到不同的地方公司(工厂)生产的具体商品
行为型策略模式(Strategy)封装了可以互换替换的方法,方法间的变化互不影响。公共方法、公共类泡面中的调料包
状态模式(State)封装了基于状态的行为,并使用委托在行为之间切换。登录状态电梯中开闭门,启动停止状态的排列组合
责任链模式(Chain of Responsibility)对象链可以依序检查请求并进行处理。DNS寻址过程领导向上追责
解释器模式(Interpreter)按“语句”规则动态生成类,类方法用于解释“语句”的行为。SQL解析、符号处理、编译器原理english
命令模式(Command)封装请求成为对象。GUI按钮按菜单点餐
观察者模式(Observer)让对象能够在状态改变时被通知。发布/订阅、消息队列降价商品的短信通知
备忘录模式(Memento)把重要状态封装在外面,实现数据恢复能力。数据库事务后悔药、游戏存档
迭代器模式(Iterator)在对象集合里按序访问,又不暴露集合内部的具体实现。iterator、foreach想着晚上去哪个餐厅的时候
模板方法模式(Template Method)由子类决定如何实现一个方法中的步骤。框架开发、二次开发房屋骨架的基建
访问者模式(Visitor)提供访问中介类,隐藏客户直接访问组合类的具体方法。拦截器、过滤器保险代理人定制险种
中介者模式(Mediator)控制逻辑集中,协调多个独立的类之间传递消息。MVC的C房产中介,协调买家和卖家
结构型装饰者模式(Decorator)动态地将责任附加到对象上,有别于继承的另一种选择。链式调用斜杠青年、俄罗斯套娃
代理模式(Proxy)包装对象,以控制对此对象的访问。快捷方式、VPN车票代售
组合模式(Composite)统一方法处理对象,子类无法影响父类。文件目录管理公司部门分层
桥连接模式(Bridge)抽象和实现可以独立扩展,不会影响到对方。JDBC的API港珠澳大桥
适配器模式(Adapter)提供接口,让原来不兼容的类之间可以合作无间。软件驱动、Wine电源转换插头
蝇量模式(Flyweight)(享元模式)管理许多“虚拟对象”,减少实例化个数和节省内存。数据池土豪开车,如果没有宝马就new一个
外观模式(Facade)提供统一接口,简化一个系统中的一群接口。第三方API、SDK调用

公司前台接待

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

参考资料:

https://refactoringguru.cn/design-patterns/

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

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值