本人学习笔记。内容参考《Java设计模式》刘伟 教程配套PPT。仅供学习参考使用。
文章目录
总述
结构型模式关注如何将现有类或对象组织在一起形成更加强大的结构。
不同的结构型模式从不同的角度组合类或对象,它们在尽可能满足各种面向对象设计原则的同时为类或对象的组合提供一系列巧妙的解决方案。
类结构型模式:关心类的组合,由多个类组合成一个更大的系统,在类结构型模式中一般只存在继承关系和实现关系。
对象结构型模式:关心类与对象的组合,通过关联关系,在一个类中定义另一个类的实例对象,然后通过该对象调用相应的方法。
结构型模式有7种,下面的表格我总结了它们的定义和例子:
模式名称 | 定 义 | 形象化例子 | 应用实例 |
---|---|---|---|
适配器模式 | 将一个类的接口转换成客户希望的另一个接口。适配器模式让那些接口不兼容的类可以一起工作。 | 电源适配器 | 重用灯光声音设计玩具车 |
桥接模式 | 将抽象部分与它的实现部分解耦,使得两者都能够独立变化。 | 毛笔颜色和型号分离 | 跨平台图像浏览系统 |
组合模式 | 组合多个对象形成树形结构,以表示具有部分-整体关系的层次结构。组合模式让客户端可以统一对待单个对象和组合对象。 | 操作系统目录结构 | 可杀毒不同文件的杀毒软件 |
装饰模式 | 动态地给一个对象增加一些额外的职责。就扩展功能而言,装饰模式提供了一种比使用子类更加灵活的替代方案。 | 图片加边框 | 图形界面构件库 |
外观模式 | 为子系统中的一组接口提供一个统一的入口。外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 | 去茶馆喝茶 | 文件加密(包含读写) |
享元模式 | 运用共享技术有效地支持大量细粒度对象的复用。 | 活字印刷 | 围棋软件的棋子对象 |
代理模式 | 给某一个对象提供一个代理或占位符,并由代理对象来控制对原对象的访问。 | 代购 | 信息查询系统 |
1.适配器模式
概述
将一个类的接口转换成客户希望的另一个接口。适配器模式让那些接口不兼容的类可以一起工作。这里的接口是广义的接口,可以表示一个方法或者方法的集合。
典型例子:电源适配器、重用灯光、声音的代码设计新的玩具车
结构
包括:Target(目标抽象类)Adapter(适配器类)Adaptee(适配者类)
类适配器的结构:
对象适配器的结构:
缺省适配器模式的结构:(不使用接口中所有方法的情况)
双向适配器模式的结构: