• 结构型模式总结


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

    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模式适用于编译时不能(至少不方便)确定对象的全部功能的情况。

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

  • 相关阅读:
    微信小程序地图组件中的include-points怎样缩放视野并将所有坐标点在规定的视野内展示?
    两种常见的mysql集群架构
    layui+oss阿里云附件上传回调报错问题
    redis hash过期时间
    Static和Extern关键字理解
    代理模式
    中介者模式
    访问者模式
    模板方法模式
    迭代器模式
  • 原文地址:https://www.cnblogs.com/codeMedita/p/7374058.html
Copyright © 2020-2023  润新知