面向接口编程详解 - 图文(4)
4 {
5 private IMobileStorage _usbDrive; 6
7 public IMobileStorage UsbDrive 8
{
9 get 10
{
11 return this._usbDrive; 12 } 13 set 14
{
15 this._usbDrive = value; 16 } 17 } 18
19 public Computer() 20
{
21 } 22
23 public Computer(IMobileStorage usbDrive) 24
{
25 this.UsbDrive = usbDrive; 26 } 27
28 public void ReadData() 29
{
30 this._usbDrive.Read(); 31 }
32
33 public void WriteData() 34
{
35 this._usbDrive.Write(); 36 } 37 } 38}
其中的UsbDrive就是可替换的移动存储设备,之所以用这个名字,是为了让大家觉得直观,就像我们平常使用电脑上的USB插口插拔设备一样。
OK!下面我们来测试我们的“电脑”和“移动存储设备”是否工作正常。我是用的C#控制台程序,具体代码如下: 1namespace InterfaceExample 2
{
3 class Program 4
{
5 static void Main(string[] args) 6
{
7 Computer computer = new Computer();
8 IMobileStorage mp3Player = new MP3Player(); 9 IMobileStorage flashDisk = new FlashDisk();
10 IMobileStorage mobileHardDisk = new MobileHardDisk(); 11
12 Console.WriteLine(\nd copy some music to it:\);
13 computer.UsbDrive = mp3Player; 14 computer.WriteData(); 15 Console.WriteLine();
16
17 Console.WriteLine(\y computer from a mobile hard disk:\);
18 computer.UsbDrive = mobileHardDisk; 19 computer.ReadData(); 20 Console.WriteLine(); 21
22 Console.WriteLine(\h disk and copy another file to it:\); 23 computer.UsbDrive = flashDisk; 24 computer.ReadData(); 25 computer.WriteData(); 26 Console.ReadLine(); 27 } 28 } 29}
现在编译、运行程序,如果没有问题,将看到如下运行结果:
好的,看来我们的系统工作良好。
后来??
刚过了一个星期,就有人送来了新的移动存储设备NewMobileStorage,让我测试能不能用,我微微一笑,心想这不是小菜一碟,让我们看看面向接口编程的威力吧!将测试程序修改成如下:
1namespace InterfaceExample 2
{
3 class Program 4
{
5 static void Main(string[] args)
6 {
7 Computer computer = new Computer();
8 IMobileStorage newMobileStorage = new NewMobileStorage(); 9
10 Console.WriteLine(\); 11 computer.UsbDrive = newMobileStorage; 12 computer.ReadData(); 13 computer.WriteData(); 14 Console.ReadLine(); 15 } 16 } 17}
编译、运行、看结果:
相关推荐:
- [学前教育]MC9S12XS256RMV1 xs128芯片手册4
- [学前教育]安东尼语录经典语录
- [学前教育]e级gps控制测量技术设计书
- [学前教育]苏教版2022-2022学年八年级下学期期末
- [学前教育]装修公司推广 营销
- [学前教育]家政服务合同(完整版)
- [学前教育]湖北省2016届高三联考语文试题
- [学前教育]爱立信无涯学习系统LTE题库1-LTE基础知
- [学前教育]揭秘大众柴油车作弊软件原理
- [学前教育]人才流失原因及对策分析
- [学前教育]房屋建筑施工工程劳务分包合同
- [学前教育]国际贸易实务试卷A卷09.6
- [学前教育]校园废品回收活动计划方案书范文格
- [学前教育]电大成本会计试题及答案
- [学前教育]大学物理实验 华南理工出版社 绪论答案
- [学前教育]爱丁堡产后抑郁量表
- [学前教育]液压冲击的危害、产生原因与防止方法(
- [学前教育]学生工作总结高一学生期中考试总结_020
- [学前教育]人民医院医疗废物管理规章制度大全
- [学前教育]阳光维生素的巨大抗癌潜能阅读题答案.d
- 马云在云锋基金江苏论坛闭幕式的发言
- 试论小学体育教育中的心理健康教育-教
- 语文A版一年级下册《语文乐园一》教学
- 2021四川大学物理化学考研真题经验参考
- [人教A版]2015-2016学年高中数学 第二
- 终端网点销售返利协议书
- 江苏省2015年眼科学主治医师青光眼考试
- 2017年部编人教版八年级语文上册教案
- 十一中学七年级英语上册Unit7Howmuchar
- 以赛促教的创新性实验教学机制建设实践
- 平凉市崆峒区2015七年级下生物期末试题
- 琶洲(地块五)A、B塔楼1、2#塔吊基础
- 一级医院工作制度与人员岗位职责
- 2018北京西城区高三二模理科数学试题及
- 炒股密码线技术 - 图文
- 职高学生生涯发展辅导教案
- 语文人教版四年级上册8 世界地图引出的
- 最新最新人教版二年级上册全册数学教案
- 2017高考英语全国2卷精彩试题(有问题
- 普通心理学笔记




