知识大全 Java语言深入--什么叫面向接口编程

Posted 系统

篇首语:没有一个冬天不可逾越,没有一个春天不会来临。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Java语言深入--什么叫面向接口编程相关的知识,希望对你有一定的参考价值。

Java语言深入--什么叫面向接口编程  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  在一个面向对象的系统中 系统的各种功能是由许许多多的不同对象协作完成的 在这种情况下 各个对象内部是如何实现自己的对系统设计人员来讲就不那么重要了;而各个对象之间的协作关系则成为系统设计的关键 小到不同类之间的通信 大到各模块之间的交互 在系统设计之初都是要着重考虑的 这也是系统设计的主要工作内容 面向接口编程我想就是指按照这种思想来编程吧!实际上 在日常工作中 你已经按照接口编程了 只不过如果你没有这方面的意识 那么你只是在被动的实现这一思想;表现在频繁的抱怨别人改的代码影响了你(接口没有设计到) 表现在某个模块的改动引起其他模块的大规模调整(模块接口没有很好的设计)等等

  Booch先生那天谈到Interaction Designer 它就是指做这类设计的人 只不过层次更高一些 我想目前我们的软件设计队伍中 这类人是最缺乏的人才之一

  非接口编程?是不是就是面向过程的编程思想?

   关于接口的理解

  接口从更深层次的理解 应是定义(规范 约束)与实现(名实分离的原则)的分离

  我们在一般实现一个系统的时候 通常是将定义与实现合为一体 不加分离的 我认为最为理解的系统设计规范应是所有的定义与实现分离 尽管这可能对系统中的某些情况有点繁烦

  接口的本身反映了系统设计人员对系统的抽象理解

  接口应有两类 第一类是对一个体的抽象 它可对应为一个抽象体(abstract class);

  第二类是对一个体某一方面的抽象 即形成一个抽象面(interface);

  一个体有可能有多个抽象面

  抽象体与抽象面是有区别的

   设计接口的另一个不可忽视的因素是接口所处的环境(context environment) 系统论的观点 环境是系统要素所处的空间与外部影响因素的总和 任何接口都是在一定的环境中产生的 因此环境的定义及环境的变化对接口的影响是不容忽视的 脱离原先的环境 所有的接口将失去原有的意义

   按照组件的开发模型( C) 它们三者相辅相成 各司一面 浑然一体 缺一不可

  面向对象是指 我们考虑问题时 以对象为单位 考虑它的属性及方法

  面向过程是指 我们考虑问题时 以一个具体的流程(事务过程)为单位 考虑它的实现

  接口设计与非接口设计是针对复用技术而言的 与面向对象(过程)不是一个问题

  我认为 UML里面所说的interface是协议的另一种说法 并不是指的interface CORBA的interface Java的interface Delphi的interface 人机界面的interface或NIC的interface

  在具体实现中 是可以把UML的interface实现为语言的interface 分布式对象环境的interface或其它什么interface 但就理解UML的interface而言 指的是系统每部分的实现和实现之间 通过interface所确定的协议来共同工作

  所以我认为 面向interface编程 原意是指面向抽象协议编程 实现者在实现时要严格按协议来办 也就是Bill Joy同志说的 一边翻rfc 一边写代码的意思 面向对象编程是指面向抽象和具象 抽象和具象是矛盾的统一体 不可能只有抽象没有具象 一般懂得抽象的人都明白这个道理 但有的人只知具象却不知抽象为何物

  所以只有interface没有实现 或只有实现而没有interface者是没有用的 反OO的

  所以还是老老实实面向对象编程 面向协议编程 或者什么都不面向 老老实实编程

cha138/Article/program/Java/hx/201311/26123

相关参考

知识大全 关于什么叫面向接口编程

在一个面向对象的系统中系统的各种功能是由许许多多的不同对象协作完成的在这种情况下各个对象内部是如何实现自己的对系统设计人员来讲就不那么重要了而各个对象之间的协作关系则成为系统设计的关键小到不同类之间的

知识大全 什么是面向接口编程

cha138/Article/program/Java/hx/201311/25545

知识大全 试简单概括面向对象接口编程

  本文不是为了论证面向对象方法论那需要深厚的理论知识和丰富的实践经验本人两方面都差得很远  这里只是试图给出一个对面象接口的深入浅出的简单原则  就象数学很难数论很难但是九九表不难各位数字之和被整除

知识大全 petshop4体现的面向接口编程思想

  petshop充分体现了面向接口编程的思想就是给你一个接口你别管我是怎么实现的你只管用别说其他的        na

知识大全 面向对象思想之 -- 理解类和对象

  上一次在使用Java开始面向对象的编程这篇文章中我们学习了一个编程语言要真正成为面向对象的它应该支持信息隐藏/封装多态继承和动态绑定另外我们知道了Java完全支持这些功能而且知道了因为Java是一

知识大全 面向Java开发人员的Scala指南: 面向对象的函数编程

面向Java开发人员的Scala指南:面向对象的函数编程  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下

知识大全 叩开C#之门系列之C#与面向对象编程语言

叩开C#之门系列之C#与面向对象编程语言  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  C#是纯

知识大全 面向对象建模与数据库建模的比较

  我们知道一个软件从无到有需要经过如下几个阶段分析设计编程调试部署和运行  编程阶段我们通常使用Java/NET这样面向对象语言工具可以带来很多设计上的好处但是也存在一个奇怪的现象很多程序员虽然在使

知识大全 澄清Java语言接口与继承的本质

澄清Java语言接口与继承的本质  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  计算机学院研二的

知识大全 面向Java开发人员的Scala指南: 深入了解Scala并发性 了解 Scala 如何简化并发编

面向Java开发人员的Scala指南:深入了解Scala并发性了解Scala如何简化并发编  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后