zoukankan      html  css  js  c++  java
  • 软件构造 第五章第三节 可复用的设计模式

    第五章第三节 可复用的设计模式

    Structural patterns

    1.适配器模式(Adapter

    问题描述:其中LegacyRectangle是已有的类(需要传入矩形的一个顶点、长和宽),但是与client要求的接口不一致(需要给出对角线两个顶点坐标),我们此时建立一个新的接口Shape以供客户端调用,用户通过Shape接口传入两个点的坐标。Rectangle作为Adapter,实现该抽象接口,通过具体的方法实现适配。

     

    实现方法:通过增加一个新的接口,将已存在的子类封装起来,client直接面向接口编程,从来隐藏了具体子类。适配器继承或依赖已有的对象,实现想要的目标接口

     

    2,装饰器模式(Decorator

    实现方法:将具体功能职责划分,对每一个特性构造子类,通过委派机制增加到对象上

    我的理解:通过委派机制,旧的特性保持,通过构造函数传入旧的对象。原来的方法使用super.method()来实现,并加上新的功能。

     

    例子:

     

    3.外观模式(Facade

    • 实现方法:提供一个统一的接口来取代一系列小接口调用,相当于对复杂系统做了一个封装,简化客户端使用。便于客户端学习,解耦

     

    我的理解:增加一个helper,对两种生成方式进行封装。

     

    Behavioral patterns

    1. Strategy

    接口中派生出类,以不同的方式实现相同的方法。

     

    1. Template Method

    实现方法:共性的步骤在抽象类内公共实现,差异化的步骤在各个子类中实现。一般使用继承和重写实现模板模式。

    按照一定的步骤:

    使用继承和重写实现模板模式

     

    1. Iterator

    实现方法:这种模式让自己的集合类实现Iterable接口,并实现自己的独特Iterator迭代器(hasNext, next, remove),允许客户端利用这 个迭代器进行显式或隐式的迭代遍历。

     

  • 相关阅读:
    农历
    成熟度模型-数据安全
    vscode升级go插件
    关于作者
    SpringBoot入门十二(整合之项目打包部署运行)
    SpringBoot入门十一(整合之RedisTemplate的使用)
    SpringBoot入门十(整合之Junit测试)
    SpringBoot入门九(整合之通用mapper)
    SpringBoot入门八(整合之mybatis)
    SpringBoot入门七(整合之事务和连接池)
  • 原文地址:https://www.cnblogs.com/masteryellow/p/9214325.html
Copyright © 2011-2022 走看看