设计模式之结构型模式二

1、桥接模式

从字面意义上就给人一种拼接、连接的感觉。

这里认为是合成复用原则,比如绘图时有各种形状的图形,而每个图形又有各种颜色,如果我们不拆分那么就要生成图形 * 颜色个类,而且每新增一个 图形,就要新增颜色数量的类,这显然是不合理的。所以桥接模式就很好的解决了这个问题

我们定义个颜色接口,实现需要的颜色类

然后定义图形抽象类,抽象类引用颜色接口,在绘图前设置进来。这样就巧妙的解决了问题,而且新增图形就新增一个实现类即可,符合开闭原则。

这里谁引用谁并没有什么限制,主要是某个模块更可能扩展。

这里功能的扩展和装饰模式很像,只是装饰模式继承了同一个接口,是对定义成接口中的方法进行拓展

2、适配器模式

这个是为了多个不同模块间能够协调工作,那么怎么工作哪?自然是转换了。如果目标模块运行到多态的地方,一般会怎么办?自然是定义一个接口或抽象类(对一类对象的定义),然后通过具体实现类就可以解决问题。但是如果在另一个模块已经实现了某个功能但是定义的方法不同怎么办呢?自然是转换了。所以目标模块引用已经实现功能的模块,根据依赖倒置,所以目标模块会定义一个接口决定适配的功能,在具体实现类中的方法中调用引用的类,完成转换

3、外观模式

该模式是迪米特法则的体现,用户不需要子模块系统的具体实现,用户只是要满足自己的需求。比如用户去餐厅吃饭,用户只需点餐,点完等待吃饭即可。而对饭菜的实现并不需要理解。后台系统就可以通过菜单安排厨师做菜、做好后服务员上菜。而这些子系统用户不需要了解。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值