⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 面向接口的编程.txt

📁 一些关于UML的经典讨论
💻 TXT
字号:
什么叫针对接口编程

--------------------------------------------------------------------------------
它与非接口编程的区别和优点是什么? 
 01/12/29 08:57 酷帖!    臭帖!    回复   
酷帖评价:           臭帖评价: 
返回页首 
 
 gigix  回复: 什么叫针对接口编程

--------------------------------------------------------------------------------
请看《设计模式》一书。 
 01/12/29 09:29 酷帖!    臭帖!    回复   
酷帖评价:           臭帖评价: 
返回页首 
 
 xu_zh_h   回复: 什么叫针对接口编程,谢谢

--------------------------------------------------------------------------------
 
 01/12/29 09:31 酷帖!    臭帖!    回复   
酷帖评价:           臭帖评价: 
返回页首 
 
 lw011  回复: 什么叫针对接口编程

--------------------------------------------------------------------------------
《设计模式》书中有明确说明 
 01/12/29 09:36 酷帖!    臭帖!    回复   
酷帖评价:           臭帖评价: 
返回页首 
 
 joy_wind  部分间的协作

--------------------------------------------------------------------------------
在一个面向对象的系统中,系统的各种功能是由许许多多的不同对象协作完成的。在这种情况下,各个对象内部是如何实现自己的对系统设计人员来讲就不那么重要了;而各个对象之间的协作关系则成为系统设计的关键。小到不同类之间的通信,大到各模块之间的交互,在系统设计之初都是要着重考虑的,这也是系统设计的主要工作内容。面向接口编程我想就是指按照这种思想来编程吧!实际上,在日常工作中,你已经按照接口编程了,只不过如果你没有这方面的意识,那么你只是在被动的实现这一思想;表现在频繁的抱怨别人改的代码影响了你(接口没有设计到),表现在某个模块的改动引起其他模块的大规模调整(模块接口没有很好的设计)等等。
Booch先生那天谈到Interaction Designer,它就是指做这类设计的人,只不过层次更高一些。我想目前我们的软件设计队伍中,这类人是最缺乏的人才之一。
非接口编程?是不是就是面向过程的编程思想? 
 01/12/29 10:05 酷帖!    臭帖!    回复   
酷帖评价:           臭帖评价: 
返回页首 
 
 grantleecn   不对吧?

--------------------------------------------------------------------------------
“非接口编程 = 面向过程的编程思想”?有没有搞错?接口恰恰是面向对象技术的一个体现!通过接口隐藏实现细节。接口比对象的方法更加稳定、更加广泛而已:接口是固定的、接口一般是可以跨越语言、二进制兼容的。对象的方法相比较弱而已。 
 01/12/29 10:27 酷帖!    臭帖!    回复   
酷帖评价:           臭帖评价: 
返回页首 
 
 joy_wind  你和我说的没有矛盾呀!

--------------------------------------------------------------------------------
 
 01/12/29 10:39 酷帖!    臭帖!    回复   
酷帖评价:           臭帖评价: 
返回页首 
 
 javalover  回复: 部分间的协作

--------------------------------------------------------------------------------
1.关于接口的理解。
接口从更深层次的理解,应是定义(规范,约束)与实现(名实分离的原则)的分离。
我们在一般实现一个系统的时候,通常是将定义与实现合为一体,不加分离的,我认为最为理解的系统设计规范应是所有的定义与实现分离,尽管这可能对系统中的某些情况有点繁烦。
接口的本身反映了系统设计人员对系统的抽象理解。
接口应有两类:第一类是对一个体的抽象,它可对应为一个抽象体(abstract class);
第二类是对一个体某一方面的抽象,即形成一个抽象面(interface);
一个体有可能有多个抽象面。
抽象体与抽象面是有区别的。
2.设计接口的另一个不可忽视的因素是接口所处的环境(context,environment),系统论的观点:环境是系统要素所处的空间与外部影响因素的总和。任何接口都是在一定的环境中产生的。因此环境的定义及环境的变化对接口的影响是不容忽视的,脱离原先的环境,所有的接口将失去原有的意义。
3.按照组件的开发模型(3C),它们三者相辅相成,各司一面,浑然一体,缺一不可。
 
 01/12/29 11:31 酷帖!    臭帖!    回复   
酷帖评价:           臭帖评价: 
返回页首 
 
 lw011  接口设计(非接口设计)与面向对象设计(面向过程设计)不是一回事

--------------------------------------------------------------------------------
面向对象是指,我们考虑问题时,以对象为单位,考虑它的属性及方法
面向过程是指,我们考虑问题时,以一个具体的流程(事务过程)为单位,考虑它的实现
接口设计与非接口设计是针对复用技术而言的,与面向对象(过程)不是一个问题 
 01/12/29 11:57 酷帖!    臭帖!    回复   
酷帖评价:           臭帖评价: 
返回页首 
 
 sealw  接口是二进制兼容的?你说的是com接口和corba接口吧

--------------------------------------------------------------------------------
 
 01/12/29 12:46 酷帖!    臭帖!    回复   
酷帖评价:           臭帖评价: 
返回页首 
 
 grantleecn  如果不是二进制兼容,复用和跨语言就很困难。

--------------------------------------------------------------------------------
如果不是二进制兼容,复用和跨语言就很困难。COM和CORBA只是现行的接口标准,当然你也可以自创接口标准、自创接口,但是如果不能做到二进制兼容,只能在源码一级兼容,你的接口的复用性就很差了。 
 01/12/30 09:30 酷帖!    臭帖!    回复   
酷帖评价:           臭帖评价: 
返回页首 
 
 grantleecn  我没有说它们是一回事呀?

--------------------------------------------------------------------------------
 
 01/12/30 09:31 酷帖!    臭帖!    回复   
酷帖评价:           臭帖评价: 
返回页首 
 
 lang_han   回复: 接口设计(非接口设计)与面向对象设计(面向过程设计)不是一回事

--------------------------------------------------------------------------------
好象这个问题有很多种类理解,因此产生问题是难免的,所以麻烦各位老师明确描述一下这个问题自己的理解。 
 01/12/30 10:03 酷帖!    臭帖!    回复   
酷帖评价:           臭帖评价: 
返回页首 
 
 sealw  呵呵,好象大家讨论的“面向接口的编程”与二进制兼容没什么关系吧。

--------------------------------------------------------------------------------
 
 01/12/30 17:11 酷帖!    臭帖!    回复   
酷帖评价:           臭帖评价: 
返回页首 
 
 sealw  您的意思是不是说,如果我们“面象com接口编程”,那我们就可以用VB,VC,BC,Delphi,PB,......写程序而且复用性很好,对吧?

--------------------------------------------------------------------------------
 
 01/12/30 17:13 酷帖!    臭帖!    回复   
酷帖评价:           臭帖评价: 
返回页首 
 
 grantleecn   你又是如何理解的呢?

--------------------------------------------------------------------------------
 
 01/12/31 11:17 酷帖!    臭帖!    回复   
酷帖评价:           臭帖评价: 
返回页首 
 
 grantleecn   是的!

--------------------------------------------------------------------------------
是的。采用COM标准设计、编程时,我们可以根据各种语言的特长选择合适的语言完成目标。当你使用一个COM组件时你不需要知道它使用什么语言写的,只要根据它的接口定义去使用即可。 
 01/12/31 11:21 酷帖!    臭帖!    回复   
酷帖评价:           臭帖评价: 
返回页首 
 
 sealw  那为什么不叫做面向协议编程呢?

--------------------------------------------------------------------------------
如果协议定了,岂不是任何语言都可以吗?还可以在linux上用python写。

我认为:UML里面所说的interface是协议的另一种说法。并不是指com的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的。

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

但是我很讨厌讨论这样的术语,不如我们谈谈什么叫面向领导的编程?面向用户的编程?领导和用户有时都很BT,我们就面向BT编程?
 
 01/12/31 12:22 酷帖!    臭帖!    回复   
酷帖评价:           臭帖评价: 
返回页首 
 
 grantleecn   反对!

--------------------------------------------------------------------------------
1、不能把协议和接口混为一谈;至于为什么不同在这里我不想详谈,因为离题太远。
2、UML中的Interface是指概念上的接口;我说COM是接口并没有说接口是COM。
3、后面的就不值一驳了。 
 01/12/31 12:35 酷帖!    臭帖!    回复   
酷帖评价:           臭帖评价: 
返回页首 
 
 sealw  真高人也。本来我以为我知道你在说什么,忽然我又对自己产生了怀疑。

--------------------------------------------------------------------------------
难道大家讨论的不是UML的接口?

概念上的接口又是一个什么概念呢?什么算是非概念上的接口? 
 01/12/31 17:06 酷帖!    臭帖!    回复   
酷帖评价:           臭帖评价: 
返回页首 
 
 grantleecn   我也开始有些糊涂了!

--------------------------------------------------------------------------------
概念上的接口就是对“接口的抽象描述”;
非概念上的接口就是“接口的具体实现”; 
 01/12/31 17:09 酷帖!    臭帖!    回复   
酷帖评价:           臭帖评价: 
返回页首 
 
 alou   接口的具体实现是什么?属于接口?还是指的COM支持接口的那些东西(比如参数排列等)

--------------------------------------------------------------------------------
 
 01/12/31 17:17 酷帖!    臭帖!    回复   
酷帖评价:           臭帖评价: 
返回页首 
 
 sealw  那么您认为com接口是概念上的还是非概念上的?

--------------------------------------------------------------------------------
 
 01/12/31 17:22 酷帖!    臭帖!    回复   
酷帖评价:           臭帖评价: 
返回页首 
 
 grantleecn   具体实现首先是一种接口标准。

--------------------------------------------------------------------------------
具体实现首先是一种接口标准,如COM、CORBA等。我们在具体实现的时候一般需要套用某种标准。当然创造一个标准也可以:) 
 01/12/31 17:24 酷帖!    臭帖!    回复   
酷帖评价:           臭帖评价: 
返回页首 
 
 xu_zh_h   回复: 呵呵,好象大家讨论的“面向接口的编程”与二进制兼容没什么关系吧。

--------------------------------------------------------------------------------
谢谢你高手,你的论述很清晰,也很精彩,小弟我佩服,我要向你学习 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -