设计模式学习笔记(十五)——结构型模式总结

原创 2007年09月18日 16:39:00
设计模式学习笔记(十五)——结构型模式总结

结构型设计模式是从程序的结构上解决模块之间的耦合问题(好像是句废话),GoF23种设计模式中结构型设计模式有7种,分别是:Adapter适配器模式、Bridge桥接模式、Composite组合模式、Decorator装饰模式、Facade外观模式、Flyweight享元模式和Proxy代理模式。下面分别总结一下这几种模式:

设计模式

GoF的描述

我的理解

Adapter适配器模式

将一个类的接口转换成客户希望的另一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的类可以一起工作

转换接口,由于应用环境的变化,常常需要将“一些现存的对象”放在新的环境中应用,但是,新环境要求的接口是现存对象所不满足的,此时我们可以通过添加一层Adapter对现有的对象加入一些接口,使其适应新的应用环境。

Bridge桥接模式

将抽象部分与实现部分分离,使他们可以独立的变化

分离接口(抽象)与其实现,当某个类型具有两个或两个以上的纬度变化(或者说是变化点),通过以继承接口的方式隔离变化,以减少因变化带来的代码的修改量。

Composite组合模式

将对象组合成树形结构以表示“部分-整体”的层次结构。Composite模式使得客户对单个对象和组合对象的使用具有一致性

解决客户程序与复杂对象容器的解耦,一类具有“容器特征”的对象——即他们在充当对象的同时,又是其他对象的容器的情况,通过继承统一的接口,我们可以将容器对象及其子对象看成同一类对象使用,以减少对象使用中的复杂度。

Decorator装饰模式

动态的给一个对象添加一些额外的职责。就增加功能而言,Decorator模式比生成子类更为灵活

在稳定接口的前提下为对象扩展功能,主要是解决用继承的方式为对象扩展大量功能而造成的子对象数量膨胀的问题

Facade外观模式

为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用

简化接口,对于复杂子系统或子对象调用的封装。从客户程序角度看,只能看见Facade提供的接口。换句话说是对子对象调用的封装,将客户程序对子对象的调用与子对象的变化分离。

Flyweight享元模式

运用共享技术有效的支持大量细粒度的对象

主要是解决由于相同对象数量过大而造成系统内存开销过大的问题。实际上是相同的对象引用指向同一个对象空间。在使用Flyweight模式前要做一个评估,如果使用不当会适得其反

Proxy代理模式

为其他对象提供一种代理以控制这个对象的访问

解决直接访问某些对象是出现的问题,如:访问远程的对象

   在学习的过程中感觉,从代码的角度看Adapter适配器模式和Proxy代理模式有些类似,Adapter适配器模式是解决现有对象在新的环境中的不足,而Proxy代理模式是解决直接访问对象时出现的问题,这两种模式从使用角度看都是解决直接访问对象时出现的问题,只是含义不十分相同。

 

相关文章推荐

[转]设计模式学习笔记——结构型模式总结

结构型设计模式是从程序的结构上解决模块之间的耦合问题(好像是句废话),GoF23种设计模式中结构型设计模式有7种,分别是:Adapter适配器模式、Bridge桥接模式、Composite组合模式、D...

【设计模式学习笔记九】【结构型模式】【组合模式(Composite)】

组合模式:将对象组合成树形结构以表示“部分-整体”的层次结构;使得用户对单个对象和组合对象的使用具有一致性。又称“整体-部分“模式。 1)能够画出这个设计模式的架构框图; 2)能够根据架构框图写出对应...

【设计模式学习笔记十三】【结构型模式】【代理模式(Proxy)】

代理模式:为其他对象提供一种代理以控制对这个对象的访问。 1)能够画出这个设计模式的架构框图; 2)能够根据架构框图写出对应的伪代码; 3)这个模式的应用场景,主要优缺点。...

大话设计模式宏观总结——创建型&结构型&行为型

师傅验收项目的时候,问大话设计模式那三种类型的区别和联系是什么,顿时我傻了眼,因为除了知道这三种类型分别怎样称呼以外,从来都没想过为什么这样划分?于是,我便回答:我没想过这个问题,若是从字面上来理解的...

菜鸟学习 设计模式——结构型

前边我们简单总结了设计模式中的创建型,这篇博客我们来总结结构型的七种模式。结构型就是借由一以贯之的方式来了解元件间的关系,以简化设计。         一,装饰模式(Decorator):   ...

Java设计模式学习——结构型

本文是笔者自己在参考大神关于设计模式的讲解并学习后记的小记,只用于自己以后复习用,其他同学若想学习设计模式的种种,请移步下面原文链接: http://blog.csdn.net/zhangerqi...
  • Roy_70
  • Roy_70
  • 2017年08月08日 09:55
  • 350

十五、组合模式——设计模式学习笔记

组合模式,将对象组合成树形结构以表示‘部分-整体’的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。...

[设计模式笔记]二. 结构型模式总结

Adapter与Bridge 结构型模式之间有很多相似之处(例如: 在很多结构型模式中, 都有一个相似性, 就是都是包含了一个对象的引用或者实体, 用户不直接调用对象, 而是过这些模式中的对应类间接调...
  • cay22
  • cay22
  • 2013年09月17日 18:00
  • 1029

学习Java 23种设计模式详解笔记之结构型模式(二)

结构型设计模式上篇文章创建型设计模式学习完了5种创建型模式,这章开始,接下来将学习下7种结构型模式:适配器模式、装饰模式、代理模式、外观模式、桥接模式、组合模式、享元模式。...

设计模式简要总结——结构型模式

1. adapter 适配器         应用: 一个通用的接口,希望使用一个已有的类。         原理:定义一个抽象的接口(或者目标类),总之是应用程序使用的类。这个类定义应用程序使用功能...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:设计模式学习笔记(十五)——结构型模式总结
举报原因:
原因补充:

(最多只允许输入30个字)