zoukankan      html  css  js  c++  java
  • 结构型模式总结

    结构型模式描述的如何组合类或对象以获取更大的组合,在这里,结构型类模式是利用继承机制来组合接口或实现;结构性对象模式不是对接口或实现进行组合,而是描述了如何对一些对象进行组合。这里对它们的相似点和不同点作简要分析:

    1、Adapter和Bridge

    首先二者都给另一个对象提供了一定程度上的间接性,因而有利于系统的灵活性。它们都涉及从自身意外的一个接口向这个对象转发请求。不同之处有:

    Adapter作为唯一一个结构型类模式,它是为了解决两个已有接口之间不匹配的问题。它不需要对两个独立设计的类中的任何一个进行重新设计,就能使他们协同工作。而Bridge模式则是对抽象接口和它的实现部分进行桥接。Bridge做到了将抽象接口和实现部分进行分离,从而使得它们能够独立变化。使用Bridge模式的前提是:一个抽象将有多少个实现部分,并且抽象和实现两者都是独立演化的。

    2、Composite、Decorator和Proxy

    Composite和Decorator模式具有相似的结构图,它们都是基于递归在组合来组织可变数目的对象。但是它们的本质是不同的,Decorator旨在使你能够不需要生成子类即可给对象添加职责,这样避免了实现所有功能组合(组合数可能很庞大),从而导致子类急剧增加。而Composite则有不同的目的,它旨在构造类,使多个相关的对象能够以统一的方式处理,且多重对象也可被当成一个对象来处理。它的重点不在于修饰,而在于表示。尽管目的不同,但二者具有互补性。因此Composite与Decorator经常互补使用。

    与Decorator模式结构相似的还有Proxy。这两种模式都描述了怎样为对象提供一定程度上的间接引用,Proxy模式构成一个对象并为用户提供一致的接口。但与Decorator模式不同的是,Proxy模式不能动态地添加或分离性质,它也不是为递归组合而设计的。它的目的是,当直接访问一个实体不方便或不符合需要时,为这个实体提供一个替代者,例如,实体在远程设备上,访问受到限制或者实体是持久存储的。 Proxy 模式中,实体定义了关键功能,而 Proxy提供(或拒绝)对它的访问。在Decorator模式中,组件仅提供了部分功能,而一个或多个Decorator负责完成其他功能。Decorator模式适用于编译时不能(至少不方便)确定对象的全部功能的情况。

    区分不同模式间的差别也是很重要的。

  • 相关阅读:
    OpenCV4【6】-改变颜色空间
    OpenCV4【5】-图像基本运算
    OpenCV4【4】- 图像基本操作
    OpenCV4【3】- GUI特性:轨迹栏作为调色板
    OpenCV4 【2】- GUI特性 :绘图功能 与 鼠标事件
    OpenCV4【1】- 入门用法
    numpy
    可变对象 及其 作为 函数参数 的注意点
    关于m个苹果每天吃一个或者两个,有几种吃法
    kali之win10 linux子系统环境变量冲突解决办法
  • 原文地址:https://www.cnblogs.com/codeMedita/p/7374058.html
Copyright © 2011-2022 走看看