[设计]适配器模式
来源:互联网 发布:用淘宝联盟赚钱安全吗 编辑:程序博客网 时间:2024/06/08 17:45
[设计]适配器模式
场景
- 雷达数据是从服务端传过来的,但是历史和实时的数据结构不太一样,但是这样操作数据要么重载但是处理过程基本一样,所以这时间每个都写两个方法维护成本太高
- 所以这里想把实时数据适配成历史的
解决方法
- 可以让实时和历史都继承自同一个父类,C# 不支持多继承所以可能要用接口,这是继承这种强聚合关系也会使后期的维护成本提高。也就是传说中的类适配的方式。这里不采用
- 所以这里采用对象适配的方式,也就是说让适配器和目标对象可以达到里氏替换。方法很多同一个接口,同一个父类,这里是最简单的直接继承目标对象,这种组合的方式要强于继承的方式。
- 在适配器里做要适配的工作。
- 我们创建要适配的原类我目标类
class HistoryData { public void HisrtoryFunction() { Console.WriteLine("这是历史数据"); } } class RealData { public virtual void RealFunction() { Console.WriteLine("这是实时数据"); } }
- 我们再创建一个适配器类
class AdapteTarget:RealData { public HistoryData hisdata = new HistoryData(); public override void RealFunction() { hisdata.HisrtoryFunction(); } }
- 之后我们可以这样用
static void Main(string[] args) { RealData rd = new AdapteTarget(); rd.RealFunction(); Console.Read(); }
类图
- 占坑
注意
- 适配器肯定影响效率,所以不要过多的使用。
- 是不是符合开闭原则
- 是不是可以重新定义一些我要要适配类的行为和功能属性,所有你能感知到的信息
- 一般就是用接口不适用,或者想建立一个可以重复使用的类。
源码
原文地址
相信自己选的路,一直走下去,有过迷茫有不放弃,但是要坚持到底,并且越快越好
阅读全文
0 0
- 设计模式:适配器模式
- 设计模式------适配器模式
- 设计模式:适配器模式
- 设计模式---适配器模式
- 设计模式 适配器模式
- 设计模式 - 适配器模式
- 设计模式--适配器模式
- 设计模式-适配器模式
- 设计模式------适配器模式
- 设计模式---适配器模式
- 设计模式- 适配器模式
- 设计模式 - 适配器模式
- 设计模式:适配器模式
- 适配器模式--设计模式
- 设计模式 - 适配器模式
- 设计模式-适配器模式
- 设计模式---适配器模式
- 设计模式-适配器模式
- idea设置字体大小
- [设计]命令模式
- 数论训练 {限制} [扩展gcd][组合数][容斥原理]
- 字母图形
- String、StringBuffer与StringBuilder之间区别
- [设计]适配器模式
- 用递归法将一个整数n转换成字符串。例如,输入483,应输出字符串“483”。n的位数不确定,可以是任意位数的整数。
- 光学镜头的主要参数
- 10.19考试爆炸记
- UVa11100
- 2012-10-20 NOIP模拟赛“高级打字机”O(n)离线算法
- vscode2017最佳实战-python-更新20171024
- [设计]组合模式
- 總結——關於2017 10 19測試的分析總結