分层架构之面向接口编程_第1页
分层架构之面向接口编程_第2页
分层架构之面向接口编程_第3页
分层架构之面向接口编程_第4页
分层架构之面向接口编程_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 项目模拟 实战训练第六部分三层架构之面向接口编程 2 课程引入 现实世界中的接口 每种USB设备的内部结构均不相同 但USB接口都是统一的 3 电脑主板上的PCI插槽 声卡 显卡 网卡 每种卡的内部结构都不相同 可以把声卡 网卡 显卡都插在PCI插槽上 而不用担心哪个插槽是专门插哪个卡的 主板 课程引入 现实世界中的接口 4 课程引入 现实世界中的接口 5 接口的概念同样适用于软件架构 课程引入 现实世界中的接口 业务逻辑层接口 6 主要内容 一 理解接口二 C 中接口的代码三 面向接口的编程四 接口在三层架构中的应用 7 每种USB设备的内部结构均不相同 但USB接口都是统一的 一 理解接口 8 一 理解接口 鼠标 摄像头都实现了USB接口规定的功能 但行为完全不同 9 一 理解接口 10 一 理解接口 灯和电视都实现了Switch接口规定的功能 但行为完全不同 11 接口的概念一组功能的约定 规定 或共同行为的定义和契约或定义组件对外提供的服务一般由类来实现这组功能不规定如何实现这些功能 但是规定必须有这些功能 一 理解接口 体现了自然界中 如果你是 那么你必须能 12 二 C 中接口的代码 接口的代码定义interface接口名 返回值类型Method1 第一种功能返回值类型Method2 形式参数 第二种功能 第n种功能 接口中所有的方法都没有具体的实现 即没有方法体接口中所有的方法都是public的这些方法在实现该接口的类中得到实现体现面向对象的多态性 13 鼠标 摄像头都实现了USB接口规定的功能 但行为完全不同 二 C 中接口的代码 14 publicclassTestUSB publicstaticvoidMain USBmouse newMouse USBcamera newCamera mouse work mouse stop camera work camera stop 动态绑定 在执行期间判断所引用对象的实际类型 根据其实际的类型调用其相应的方法 父类引用指向子类对象 二 C 中接口的代码 15 分析一个例子开发一个应用软件 模拟实现计算机对移动存储设备的数据交换功能 需求情况 目前的移动存储设备有U盘 MP3 移动硬盘 未来可能还有其他的设备 系统要具有可扩展性和可维护性 三 面向接口的编程 16 解决方案分析 面向对象的编程 涉及的对象 对象归为类 类的行为 方法 实例化类并调用方法 方案1 分别定义FlashDisk MP3Player MobileHardDisk三个类 每个类有自己Read 和Write 方法 在Computer中实例化三个类 三 面向接口的编程 17 解决方案分析 U盘 MP3 移动硬盘都归属为移动存储设备 可以定义一个包含其共同行为的父类 方案2 定义父类MobileStroge 包含虚方法Read 和Write FlashDisk MP3Player MobileHardDisk三个类分别继承MobileStroge 在Computer类中有2个方法为setData 和getData 利用参数传递具体对象 三 面向接口的编程 18 解决方案分析 在计算机上定义一个接口 接口规定了读和写的功能 什么设备想要和计算机进行交互数据 必须实现该接口 方案3 定义接口IMobileStroge 包含方法Read 和Write FlashDisk MP3Player MobileHardDisk三个类分别实现IMobileStroge 在Computer类中依赖接口实现功能 三 面向接口的编程 19 解决方案分析 根据接口隔离原则 将读写功能的接口分开接口隔离原则要根据实际情况而定 方案4 定义接口IReadable和IWritable 两个接口分别只包含Read 和Write 然后定义接口IMobileStorage接口继承自IReadable和IWritable 剩下的实现与方案三相同 三 面向接口的编程 20 解决方案问题继续 某一天有了一种新的移动存储设备 使用第3种方案如何修改代码 系统架构是否符合软件架构的开笔原则 问题继续 又一天 又有了一个新的设备 但是其定义并没有按照给定的接口定义 例如把读操作定义为 rd 写操作定义为wr 怎么办 使用适配器设计模式 三 面向接口的编程 21 面向接口编程的步骤第一步 定义接口第二步 实现接口第三步 使用接口 三 面向接口的编程 22 三步法完成面向接口编程实例猫大叫一声 所有的老鼠都开始逃跑 主人被惊醒 分析 听到猫叫声的对象有两个 主人和老鼠 猫大叫会吓到上面任一个对象 两个对象有不同的反应系统需要具备良好的可扩展性和可维护性 三 面向接口的编程 23 第一步 定义接口 主人和老鼠听到猫大叫后会有相同的行为反应 共同的行为 Response 相同的行为有不同的实现 定义接口IActor 其中有Response 方法 三 面向接口的编程 24 第二步 各类按照自己的方式实现接口 三 面向接口的编程 25 第三步 使用接口 参与者是老鼠 猫大叫时老鼠开始逃跑 参与者是主人 猫大叫时主人被惊醒 三 面向接口的编程 26 接口构成了软件架构的主体结构部件用于隐藏具体底层类和实现多态性的结构部件提高软件系统的可维护性和可扩展性的部件

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论