美文网首页
结构型模式

结构型模式

作者: ttyttytty | 来源:发表于2021-06-22 20:41 被阅读0次

结构型模式 就像搭积木,可以通过 简单积木的组合形成复杂的、功能更为强大的结构。

适配器模式(Adapter)

  1. 实现:在适配器模式中可以定义一个包装类,包装不兼容接口的对象,这个包装类指的就是适配器(Adapter),它所包装的对象就是适配者(Adaptee),即被适配的类。
    2.通过使用配置文件,可以很方便地更换适配器,也可以在不修改原有代码的基础上增加新的适配器类,完全符合“开闭原则”。
    3.适用于
  • 以前开发的系统存在满足新系统功能需求的类,但其接口同新系统的接口不一致。
  • 使用第三方提供的组件,但组件接口定义和自己要求的接口定义不同。
  • 想要建立一个可以重复使用的类,用于与一些彼此之间没有太大关联的一些类一起工作。
  • 统一接口对外实现,1.不同接口包装一层,2.内部也可以是多态的多个实现。

4.例子:JDBC给出一个客户端通用的抽象接口,每一个具体数据库引擎(如SQL Server、Oracle、MySQL等)的JDBC驱动软件都是一个介于JDBC接口和数据库引擎接口之间的适配器软件。

装饰器模式

1.装饰器持有被包装对象的引用,构造函数传入, 并实现抽象的被包装行为。

  1. 可以通过一种动态的方式来扩展一个对象的功能,通过配置文件可以在运行时选择不同的装饰器,从而实现不同的行为。
    通过使用不同的具体装饰类以及这些装饰类的排列组合,可以创造出很多不同行为的组合。可以使用多个具体装饰类来装饰同一对象,得到功能更为强大的对象。而且具体构件类与具体装饰类可 以独立变化,用户可以根据需要增加新的具体构件类和具体装饰类
    3.适用于
  • 需要动态地给一个对象增加功能,这些功能也可以动态地被撤销。
  • 当不能采用继承的方式对系统进行扩充或者采用继承不利于系统扩展和维护时。不能采用继承的情况主要有两类:第一类是系统中存在大量独立的扩展,为支持每一种组合将产生大量的子类,使得子类数目呈爆炸性增长;第二类是因为类定义不能继承(如final类).
两者区别 都是包装模式(Wrapper),对象型的话,实现形式相同:都是has a 的持有关系。但是目的不同,adapter 是为了从一个接口转到另一个接口,不同接口;装饰器是为了在原有的基础上新增功能。

4.典型:IO流
BufferedReader in = new BufferedReader(new FileReader("filename.txt"));
String s = in.readLine();

桥接模式

1.存在多个独立变化的维度,好多分类。皮包按用途、颜色、大小多种分类。一个分支包含其他的维度的抽象行为引用。

Bag{Clolor color;Size size;  Way way;      public   getBag(){this.color.getcolor()+this.size.getSize()+this.way.getWay();}}

2.桥接(Bridge)模式可与适配器模式联合使用
3.与工厂方法模式的区别?

外观模式/门面模式

1.外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面.
2.在很多情况下为了节约系统资源,一般将外观类设计为单例类。当然这并不意味着在整个系统里只能有一个外观类,在一个系统中可以设计多个外观类,每个外观类都负责和一些特定的子系统交互,向用户提供相应的业务功能。

享元模式

  • 缓存可复用的结构,例如hashmap,可以结合工厂模式

http://c.biancheng.net/view/1366.html
https://design-patterns.readthedocs.io/zh_CN/latest/structural_patterns/decorator.html

相关文章

  • PHP常用设计模式

    # 创建型 单例模式 工厂模式 工厂抽象模式 原型模式 建造者模式 # 结构型 # 行为型 # 3.注册模式 # ...

  • 23种设计模式总结二

    23 种经典设计模式共分为 3 种类型,分别是创建型、结构型和行为型。 结构型设计模式 结构型模式就是一些类或对象...

  • 设计模式(行为型)-- 观察者模式

    我们常把 23 种经典的设计模式分为三类:创建型、结构型、行为型。创建型设计模式主要解决“对象的创建”问题,结构型...

  • iOS 开发的23种设计模式简介

    设计模式主要分三个类型:创建型、结构型和行为型。 其中创建型有: 行为型有: 结构型有:

  • 23种设计模式总结一

    23 种经典设计模式共分为 3 种类型,分别是创建型、结构型和行为型。 一、创建型设计模式 创建型设计模式包括:单...

  • 设计模式简单总结(待完善)

    设计模式简单总结 设计模式可以分为:创建型,结构型,行为型三种模式。 1 创建型模式 1.1 单例模式 用来指定某...

  • D31组织结构模式

    海星型组织:用共识建立起来的组织结构模式,就是海星型组织。 例如区块链,代币,智能合约等结构模式都属于这类模式,他...

  • Nodejs实现23种设计模式-1.简单工厂模式

    Nodejs实现24种设计模式--简单工厂模式 导语:24种设计模式,分为三大类,创建型、结构型和行为型。这些模式...

  • 设计模式归纳

    一、设计模式的分类 23 种经典的设计模式分为三类:创建型、结构型、行为型。 1.创建型设计模式主要解决“对象的创...

  • 设计模式之工厂模式

    设计模式中主要分为三大类:创建型、结构型、行为型 工厂模式属于创建型,顾名思义,创建型模式关注对象的创建过程,它将...

网友评论

      本文标题:结构型模式

      本文链接:https://www.haomeiwen.com/subject/pjimyltx.html