9 C设计模式适配器模式.ppt
文本预览下载声明
www.ChinaSA.info www.ChinaSA.info Design Patterns 适配器模式 刘 伟 (Sunny) weiliu_china@126.com 大纲 结构型模式 适配器模式概述 适配器模式的结构与实现 适配器模式的应用实例 缺省适配器模式 双向适配器模式 适配器模式的优缺点与适用环境 结构型模式 结构型模式(Structural Pattern)关注如何将现有类或对象组织在一起形成更加强大的结构 不同的结构型模式从不同的角度组合类或对象,它们在尽可能满足各种面向对象设计原则的同时为类或对象的组合提供一系列巧妙的解决方案 结构型模式 类结构型模式 关心类的组合,由多个类组合成一个更大的系统,在类结构型模式中一般只存在继承关系和实现关系 对象结构型模式 关心类与对象的组合,通过关联关系,在一个类中定义另一个类的实例对象,然后通过该对象调用相应的方法 结构型模式 结构型模式一览表 模式名称 定 义 学习难度 使用频率 适配器模式 (Adapter Pattern) 将一个类的接口转换成客户希望的另一个接口。适配器模式让那些接口不兼容的类可以一起工作。 ★★☆☆☆ ★★★★☆ 桥接模式 (Bridge Pattern) 将抽象部分与它的实现部分解耦,使得两者都能够独立变化。 ★★★☆☆ ★★★☆☆ 组合模式 (Composite Pattern) 组合多个对象形成树形结构,以表示具有部分-整体关系的层次结构。组合模式让客户端可以统一对待单个对象和组合对象。 ★★★☆☆ ★★★★☆ 装饰模式 (Decorator Pattern) 动态地给一个对象增加一些额外的职责。就扩展功能而言,装饰模式提供了一种比使用子类更加灵活的替代方案。 ★★★☆☆ ★★★☆☆ 外观模式 (Facade Pattern) 为子系统中的一组接口提供一个统一的入口。外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 ★☆☆☆☆ ★★★★★ 享元模式 (Flyweight Pattern) 运用共享技术有效地支持大量细粒度对象的复用。 ★★★★☆ ★☆☆☆☆ 代理模式 (Proxy Pattern) 给某一个对象提供一个代理或占位符,并由代理对象来控制对原对象的访问。 ★★★☆☆ ★★★★☆ 适配器模式概述 电源适配器 适配器模式概述 分析 现实生活: 不兼容:生活用电220V ?? 笔记电脑20V 引入 AC Adapter(交流电适配器) 软件开发: 存在不兼容的结构,例如方法名不一致 引入适配器模式 适配器模式概述 适配器模式的定义 对象结构型模式 / 类结构型模式 适配器模式:将一个类的接口转换成客户希望的另一个接口。适配器模式让那些接口不兼容的类可以一起工作。 Adapter Pattern: Convert the interface of a class into another interface clients expect. Adapter lets classes work together that couldnt otherwise because of incompatible interfaces. 适配器模式概述 适配器模式的定义 别名为包装器(Wrapper)模式 定义中所提及的接口是指广义的接口,它可以表示一个方法或者方法的集合 适配器模式的结构与实现 适配器模式的结构(类适配器) 适配器模式的结构与实现 适配器模式的结构(对象适配器) 适配器模式的结构与实现 适配器模式的结构 适配器模式包含以下3个角色: Target(目标抽象类) Adapter(适配器类) Adaptee(适配者类) 适配器模式的结构与实现 适配器模式的实现 典型的类适配器代码: class Adapter : Adaptee, Target { public void Request() { base.SpecificRequest(); } } 适配器模式的结构与实现 适配器模式的实现 典型的对象适配器代码: class Adapter : Target { private Adaptee adaptee; //维持一个对适配者对象的引用 public Adapter(Adaptee adaptee) { this.adaptee = adaptee; } public void Request() { adaptee.SpecificRequest();//转发调用 } } 适配器模式的应用实例 实例说明 在为某学校开发教务管理系统时,开发人员发现需要对学生成绩进行排序和查找,该系统的设计人员已经开发了一个成绩操作接口Sco
显示全部