设计模式之间的关系

本文探讨了设计模式之间的关系,包括策略模式与桥接模式、命令模式的区别,装饰器模式与代理模式、建造者模式的相似与不同,以及组合模式与解释器模式的结构特点。通过这些比较,揭示了设计模式在软件设计中的灵活应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一 策略模式

1.1 策略模式与桥接模式

  • 策略模式:类似电脑上的USB接口,USB接口可以与符合USB规范的任何设备连接,例如键盘、鼠标等,但USB接口却耦合于宿主机(USB接口需注入宿主机对象),两者之间只有一边是解耦的(USB接口),宿主机无法替换;
  • 桥接模式:桥接的两方可以任意替换,从而产生不同的结果,实现双边解耦、分离、脱钩;

1.2 策略模式与命令模式

  • 策略模式:定义好策略后,策略需要绑定其策略的使用者,用户需通过策略使用者来调用策略的功能;在这种模式中,策略与策略的使用者是强绑定的,当策略使用者的需求变得复杂后,需要不断的修改原有策略来满足复杂的需求,这不符合设计模式开闭原则;
  • 命令模式:在发令者(策略使用者)与执行者(策略)中加入命令模块(不同的策略接口与不同的策略使用者接口绑定),而达到将策略与策略使用者***彻底解耦***的目的;

二 装饰器模式

2.1 装饰器模式与代理模式

  • 代理模式:业务应只关注业务本身,本职工作之外的事务不应由业务本身处理,通过代理对象的加入,让代理对象帮助完成不应由业务本身处理的事情,即为代理模式;
  • 代理模式与装饰器模式:两者的UML类图几乎一样,区别在于代理模式强调的是对被代理对象的控制,而不是仅限于去装饰目标对象并增强其原有的功能;

2.2 装饰器模式与建造者模式

  • 相似点:两者都是通过组合不同的过程(装饰过程、建造过程),从而产生不同的结果:每个具体的装饰器各司其职,不做和自己不相关的事,然后把部件层层叠加,并根据需求组装成型,以达最终的装饰目的。

三 组合模式

3.1 组合模式与解释器模式

  • 组合模式:其本质是抽象出共同的根属性(根节点),将功能抽象成由根节点产生不同的子节点,子节点又可以继续产生子节点,直到最终的“叶子”(二叉树结构),然后通过不同节点相互组合产生结果(例如文件夹功能),他强调的是节点与节点之间是像二叉树一样的结构(强调结构型);
  • 解释器模式:其结构类似于组合模式,他通过抽象出功能最原子的属性,然后通过该原子属性不断向外伸展更多的原子属性,而不同的原子属性组合起来也可以成为一个非原子属性(组合使用),他的结构也是像二叉树一样,但强调的并非是二叉树的结构,而是原子属性的使用、原子属性与原子属性组合成非原子属性的使用(强调行为型);

源码地址:我的GitHub

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值