《大话设计模式》--OOTV杯超级模式大赛--模式总结(29-B)
来源:互联网 发布:hadoop windows 编译 编辑:程序博客网 时间:2024/05/21 17:09
6、适配器(Adapter):将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
7、桥接(Bridge):将抽象部分与它的实现部分分离,使它们都可以独立地变化。
8、组合(Composite):将对象组合成树形结构以表示‘部分-整体’的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性。
9、装饰(Decorator):动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类更加灵活。
10、外观(Facade):为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
11、享元(Flywight):为运用共享技术有效地支持大量细粒度的对象。
12、代理(Proxy):为其他对象提供一种代理以控制对这个对象的访问。
结构型模式总结:
想使用一个已经存在的类,而它的接口不符合要求,或者希望创建一个可以复用的类,该类可以与其他不相关的类或不可预见的类协同工作。让这些接口不同的类通过适配后,协同工作。
解耦这些不同方向的变化,通过对象组合的方式,把两个角色之间的继承关系改为了组合的关系,从而使这两者可以应对各自独立的变化。找出变化并封装。
以动态、透明的方式给单个对象添加职责。
客户可以一致地使用组合结构和单个对象。任何用到基本对象的地方都可以使用组合对象。
信息的隐藏促进了软件的复用。如果两个类不必彼此直接通信,那么就不要让这两个类发生直接的相互作用。应该让一个软件中的子系统间的通信和相互依赖关系达到最小,而具体办法就是引入一个外观对象,它为子系统间提供了一个单一而简单的屏障。
对象使得内存占用过多,而且如果都是大量重复的对象,那就是资源的极大浪费。
代理与外观的主要区别在于,代理对象代表一个单一对象而外观对象代表一个子系统;代理的客户对象无法直接访问目标对象,由代理提供对单独的目标对象的访问控制,而外观的客户对象可以直接访问子系统中的各个对象,但通常由外观对象提供对子系统各元件功能的简化的共同层次的调用接口。
代理是一种原来对象的代表,其他需要与这个对象打交道的操作都是和这个代表交涉。而适配器则不需要虚构出一个代表者,只需要为应付特定使用目的,将原来的类进行一些组合。
适配器主要是为了解决两个已有接口之间不匹配的问题,我不需要考虑这些接口是怎样实现的,也不考虑它们各自可能会如何演化。我的这种方式不需要对两个独立设计的类中任一个进行重新设计,就能够使它们协同工作。
- 《大话设计模式》--OOTV杯超级模式大赛--模式总结(29-B)
- 《大话设计模式》--OOTV杯超级模式大赛--模式总结(29-A)
- 《大话设计模式》--OOTV杯超级模式大赛--模式总结(29-C)
- 《大话设计模式》--OOTV杯超级模式大赛--模式总结(29-D)
- 《大话设计模式》--OOTV杯超级模式大赛--模式总结(面向对象基础)
- OOTV杯超级模式大赛——模式总结
- 第二十九章 OOTV杯超级模式大赛-模式总结(读书笔记)
- OOTV 模式大赛
- 【设计模式】从菜鸟到大鸟之OOTV杯大赛评委
- 大话设计模式总结
- 大话设计模式总结
- 大话设计模式总结
- 大话设计模式总结---设计模式总览
- 【设计模式】大话设计模式总结
- 大话设计模式简单总结
- 《大话设计模式》读书总结
- 大话设计模式学习总结
- 大话设计模式阅读总结
- 【第三章】 DI 之 3.3 更多DI的知识 ——跟我学spring3
- Scroller 小记
- [Android] AS 中 Gradle 配置运行浅析
- 五、数组和数组运算
- typedef 和 define的用法
- 《大话设计模式》--OOTV杯超级模式大赛--模式总结(29-B)
- 【第三章】 DI 之 3.4 Bean的作用域 ——跟我学spring3
- HDU 1160 FatMouse's Speed
- 大型商贸系统(进货管理)技术解析(一)MVC架构搭建
- http 协议---------上传文件 (详细全面,强烈推荐)
- 【第四章】 资源 之 4.1 基础知识 ——跟我学spring3
- linux命令三:chmod
- Android webView 实现与JS
- MySql的flush用法