结构型模式之 类的适配器、对象适配器 笔记
来源:互联网 发布:阿里云服务器备份恢复 编辑:程序博客网 时间:2024/06/05 08:46
资料来源:吕震宇老师博客
类的适配器图例:
简单分析:Adapter(适配者)适配器,Adaptee被适配者。在这里被适配者是以类出现的。
适用情况:现在新开发的东西用以往 出现在市场的的方法已经不适用了,但是差别又不大,如果要现在新开发的东西或者收回市场的东西都很麻烦的话,不妨考虑写个“数据线”
充当一下适配器。
对象的适配器:
简单分析:就是在适配器中引用被适配器的对象。
两者的区别:在实际中,组合方式比继承方式好,原因是:如果继承了被适配者,多多少少要知道父类的细节,这就增加了耦合度,但是对象组合就不一样了,只是用对象调用一个函数,这个函数的参数个数和类型,总的来说适配器的工作会轻松好多。
简单应用代码:
// Example of implementing the Adapter patternusing System;// Targetpublic interface ICar{ void Drive();}// Direct use without Adapter不包含适配器的情况 public class CToyota : ICar{ public void Drive() { Console.WriteLine("Vroom Vroom, we're off in our Toyota"); }}// Adaptee新增加会飞的功能 public class CCessna{ public void Fly() { Console.WriteLine("Static runup OK, we're off in our C172"); }}// Class Adapter用适配器使得新开发的桑塔纳会开+会飞,而且不用修改以前的接口代码,符合拓展性 public class CDrivableCessna : CCessna, ICar{ public void Drive() { base.Fly(); }}// Object Adapter对象适配器含有对象组合 public class CDrivableCessna2 : ICar{ private CCessna m_oContained; public CDrivableCessna2() { m_oContained = new CCessna(); } public void Drive() { m_oContained.Fly(); }}// Clientpublic class Client{ public static void Main(string[] args) { ICar oCar = new CToyota(); Console.Write("Driving a Cessna"); oCar.Drive(); //-------------// oCar = new CDrivableCessna(); Console.Write("Class Adapter: Driving an Automobile"); oCar.Drive(); //-------------// oCar = new CDrivableCessna2(); Console.Write(" Object Adapter: Driving a Cessna"); oCar.Drive(); }}
- 结构型模式之 类的适配器、对象适配器 笔记
- 7种结构型模式之:适配器模式(Adapter):类适配器、对象适配器
- 结构型模式之对象适配器
- Adapter(适配器)--类对象结构型模式
- 适配器模式之对象适配器
- 结构型之适配器模式
- 结构型之适配器模式
- 适配器模式:类适配器和对象适配器
- 适配器模式(Adapter)-对象结构型模式
- 适配器模式(类对象结构型模式)
- 适配器模式——类对象结构型模式
- 适配器模式(Adapter Pattern 类对象结构型模式)
- 设计模式11:对象适配器【结构型】
- 适配器模式之对象适配器模式简介
- 设计模式之适配器(Adapter)---类对象结构型模式
- 设计模式之九:Adapter(适配器)—类对象结构型模式
- 设计模式-结构型之适配器模式
- 结构型模式之适配器模式
- HashMap的遍历效率讨论
- 程序员情书
- C# 带多项式参数的 CRC16计算
- Ubuntu下ZJU的VPN模块
- 推荐机器学习和计算机视觉大牛
- 结构型模式之 类的适配器、对象适配器 笔记
- Android培训---创建Android工程
- July之题目--“微软亚洲研究院”
- js中2个等号与3个等号的区别
- 你必须知道的25个C#基础概念
- iPhone开发面试题--葵花宝典
- 一次向数据库插入多条记录
- DCB(串口的DCB结构)
- 浮躁