面向复用的设计模式(哈工大软件构造)

  在学习第四章的学习中,主要讲解了面向复用性的编程,其中介绍了许多面向复用编程的设计模式,需要我们多加注意,以及在实践中高效使用。
  在这一章节一共讲解了三种 结构型模式(Structural Patterns) 和三种 行为型模式(Behavioral Patterns) ,我们下面依次进行介绍。
  首先介绍三种行为型模式:

适配器模式(Adapter Pattern)

  解决的问题:将已有的对象放置到新的环境中时接口不适配的问题。
  解决方法:通过将一个类的接口转换为客户希望的接口形式复用已经拥有的类。

  组成成分:
1. 目标接口(Target):客户端所要求的接口;
2. 适配者类(Adaptee):当前已拥有的需要适配的类;
3. 适配器类(Adapter):需要实现目标接口,通过继承或委派适配者类,实现功能的转换。让客户端能通过目标接口的形式访问适配者类。 **
  处理方式:用户调用适配器类,适配器负责将功能委托给已有的接口,实现相应的功能。
  我们可以实现
类适配器对象适配器**,具体实现后的uml图如下:
类适配器模式的uml图
对象适配器模式的uml图

装饰器模式(Decorator Pattern)

  解决的问题:在动态地给一个类添加新的功能的时候,会由于多次继承引入大量的静态特征,导致代码爆炸。
  解决方法:对具体功能划分,继承指定的“装饰器”抽象类
  组成成分:
1. 抽象构件(Component):需要被装饰的类所实现的接口;
2. 具体构件(ConcreteComponent):实现了抽象构件接口的类;
3. 抽象装饰(Decorator):一个实现了具体构建的抽象类,其中维护着一个构件类型的对象,以及各种对应的抽象装饰方法。
4. 具体装饰(ConcreteDecorator):实现了抽象装饰接口的类。

  处理方式:用户将具体的对象传入装饰器类进行装饰,装饰器类会返回一个具有附加功能的对象。
  实现装饰器模式后的uml图如下:
装饰器模式的uml图

外观模式(Facade Pattern)

  解决的问题:随着软件开发的过程,子系统的数量会慢慢增多,客户端需要访问更多的子系统,这提高了客户访问系统的复杂度,外观模式提供了一个统一的接口,降低客户访问子系统时的复杂度。
  解决方法:提供了一个高级接口,其中包含了对各个子系统的引用(委派),客户端可以通过外观接口访问子系统。
  组成成分:
1. 外观类(Facade):提供了访问各个子系统的接口,再通过委派将功能委托给各个子系统;
2. 子系统类(SubSystem):各有功能的子系统类;

  处理方式:用户申请一个外观类的对象,即可调用外观对象中的方法对子系统的功能进行调用。
  实现外观模式后的uml图如下:
外观模式的uml图

参考博客:
  1. 软件设计模式概述
  2. 菜鸟教程:设计模式
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值