教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 学前教育 >

面向接口编程详解 - 图文(5)

来源:网络收集 时间:2026-08-20
导读: 哈哈,神奇吧,Computer一点都不用改动,就可以使新的设备正常运行。这就是所谓“对扩展开放,对修改关闭”。 又过了几天,有人通知我说又有一个叫SuperStorage的移动设备要接到我们的Computer上,我心想来吧,管你

哈哈,神奇吧,Computer一点都不用改动,就可以使新的设备正常运行。这就是所谓“对扩展开放,对修改关闭”。

又过了几天,有人通知我说又有一个叫SuperStorage的移动设备要接到我们的Computer上,我心想来吧,管你是“超级存储”还是“特级存储”,我的“面向接口编程大法”把你们统统搞定。

但是,当设备真的送来,我傻眼了,开发这个新设备的团队没有拿到我们的IMobileStorage接口,自然也没有遵照这个约定。这个设备的读、写方法不叫Read和Write,而是叫rd和wt,这下完了??不符合接口啊,插不上。但是,不要着急,我们回到现实来找找解决的办法。我们一起想想:如果你的Computer上只有USB接口,而有人拿来一个PS/2的鼠标要插上用,你该怎么办?想起来了吧,是不是有一种叫“PS/2-USB”转换器的东西?也叫适配器,可以进行不同接口的转换。对了!程序中也有转换器。

这里,我要引入一个设计模式,叫“Adapter”。它的作用就如现实中的适配器一样,把接口不一致的两个插件接合起来。由于本篇不是讲设计模式的,而且Adapter设计模式很好理解,所以我就不细讲了,先来看我设计的类图吧:

如图所示,虽然SuperStorage没有实现IMobileStorage,但我们定义了一个实现IMobileStorage的SuperStorageAdapter,它聚合了一个SuperStorage,并将rd和wt适配为Read和Write,SuperStorageAdapter的具体代码如下: 1namespace InterfaceExample 2

{

3 public class SuperStorageAdapter : IMobileStorage 4

{

5 private SuperStorage _superStorage; 6

7 public SuperStorage SuperStorage 8

{

9 get 10

{

11 return this._superStorage; 12 } 13 set

14 {

15 this._superStorage = value; 16 } 17 } 18

19 public void Read() 20

{

21 this._superStorage.rd(); 22 } 23

24 public void Write() 25

{

26 this._superStorage.wt(); 27 } 28 } 29}

好,现在我们来测试适配过的新设备,测试代码如下: 1namespace InterfaceExample 2

{

3 class Program 4

{

5 static void Main(string[] args) 6

{

7 Computer computer = new Computer();

8 SuperStorageAdapter superStorageAdapter = new SuperStorageAdapter();

9 SuperStorage superStorage = new SuperStorage();

10 superStorageAdapter.SuperStorage = superStorage; 11

12 Console.WriteLine(\h adapter:\);

13 computer.UsbDrive = superStorageAdapter; 14 computer.ReadData(); 15 computer.WriteData(); 16 Console.ReadLine(); 17 } 18 } 19}

运行后会得到如下结果:

OK!虽然遇到了一些困难,不过在设计模式的帮助下,我们还是在没有修改Computer任何代码的情况下实现了新设备的运行。

好了,理论在第一篇讲得足够多了,所以这里我就不多讲了。希望各位朋友结合第

下一篇,我将解析经典设计模式中的面向接口编程思想和.NET平台分层架构中接口的运用。

面向接口编程详解(三)——模式研究

通过前面两篇,我想各位朋友对“面向接口编程”的思想有了一定认识,并通过第二篇的例子,获得了一定的直观印象。但是,第二篇中的例子旨在展示面向接口编程的实现方法,比较简单,不能体现出面向接口编程的优势和这种思想的内涵。那么,这一篇作为本系列的终结篇,将通过分析几个比较有深度的模式或架构,解析隐藏其背后的面向接口思想。这篇我将要分析的分别是MVC模式和.NET平台的分层架构。 这篇的内容可能会比较抽象,望谅解。

1.从MVC开始 MVC简介:

本文不打算详细解释MVC架构,而是把重点放在其中的面向接口思想上。所以在这里,只对MVC做一个简略的介绍。 …… 此处隐藏:155字,全部文档内容请下载后查看。喜欢就下载吧 ……

面向接口编程详解 - 图文(5).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/595443.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)