国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

Java編程討論:關(guān)于什么叫面向接口編程

2019-11-17 04:32:49
字體:
供稿:網(wǎng)友
在一個(gè)面向?qū)ο蟮南到y(tǒng)中,系統(tǒng)的各種功能是由許許多多的不同對(duì)象協(xié)作完成的。在這種情況下,各個(gè)對(duì)象內(nèi)部是如何實(shí)現(xiàn)自己的對(duì)系統(tǒng)設(shè)計(jì)人員來講就不那么重要了;而各個(gè)對(duì)象之間的協(xié)作關(guān)系則成為系統(tǒng)設(shè)計(jì)的關(guān)鍵。小到不同類之間的通信,大到各模塊之間的交互,在系統(tǒng)設(shè)計(jì)之初都是要著重考慮的,這也是系統(tǒng)設(shè)計(jì)的主要工作內(nèi)容。面向接口編程我想就是指按照這種思想來編程吧!實(shí)際上,在日常工作中,你已經(jīng)按照接口編程了,只不過如果你沒有這方面的意識(shí),那么你只是在被動(dòng)的實(shí)現(xiàn)這一思想;表現(xiàn)在頻繁的抱怨別人改的代碼影響了你(接口沒有設(shè)計(jì)到),表現(xiàn)在某個(gè)模塊的改動(dòng)引起其他模塊的大規(guī)模調(diào)整(模塊接口沒有很好的設(shè)計(jì))等等。

Booch先生那天談到Interaction Designer,它就是指做這類設(shè)計(jì)的人,只不過層次更高一些。我想目前我們的軟件設(shè)計(jì)隊(duì)伍中,這類人是最缺乏的人才之一。

非接口編程?是不是就是面向過程的編程思想?

1.關(guān)于接口的理解。

接口從更深層次的理解,應(yīng)是定義(規(guī)范,約束)與實(shí)現(xiàn)(名實(shí)分離的原則)的分離。

我們?cè)谝话銓?shí)現(xiàn)一個(gè)系統(tǒng)的時(shí)候,通常是將定義與實(shí)現(xiàn)合為一體,不加分離的,我認(rèn)為最為理解的系統(tǒng)設(shè)計(jì)規(guī)范應(yīng)是所有的定義與實(shí)現(xiàn)分離,盡管這可能對(duì)系統(tǒng)中的某些情況有點(diǎn)繁煩。

接口的本身反映了系統(tǒng)設(shè)計(jì)人員對(duì)系統(tǒng)的抽象理解。

接口應(yīng)有兩類:第一類是對(duì)一個(gè)體的抽象,它可對(duì)應(yīng)為一個(gè)抽象體(abstract class);

第二類是對(duì)一個(gè)體某一方面的抽象,即形成一個(gè)抽象面(interface);

一個(gè)體有可能有多個(gè)抽象面。

抽象體與抽象面是有區(qū)別的。

2.設(shè)計(jì)接口的另一個(gè)不可忽視的因素是接口所處的環(huán)境(context,environment),系統(tǒng)論的觀點(diǎn):環(huán)境是系統(tǒng)要素所處的空間與外部影響因素的總和。任何接口都是在一定的環(huán)境中產(chǎn)生的。因此環(huán)境的定義及環(huán)境的變化對(duì)接口的影響是不容忽視的,脫離原先的環(huán)境,所有的接口將失去原有的意義。

3.按照組件的開發(fā)模型(3C),它們?nèi)呦噍o相成,各司一面,渾然一體,缺一不可。

面向?qū)ο笫侵福覀兛紤]問題時(shí),以對(duì)象為單位,考慮它的屬性及方法

面向過程是指,我們考慮問題時(shí),以一個(gè)具體的流程(事務(wù)過程)為單位,考慮它的實(shí)現(xiàn)

接口設(shè)計(jì)與非接口設(shè)計(jì)是針對(duì)復(fù)用技術(shù)而言的,與面向?qū)ο螅ㄟ^程)不是一個(gè)問題

我認(rèn)為:UML里面所說的interface是協(xié)議的另一種說法。并不是指com的interface,CORBA的interface,java的interface,Delphi的interface,人機(jī)界面的interface或NIC的interface。

在具體實(shí)現(xiàn)中,是可以把UML的interface實(shí)現(xiàn)為語言的interface,分布式對(duì)象環(huán)境的interface或其它什么interface,但就理解UML的interface而言,指的是系統(tǒng)每部分的實(shí)現(xiàn)和實(shí)現(xiàn)之間,通過interface所確定的協(xié)議來共同工作。

所以我認(rèn)為,面向interface編程,原意是指面向抽象協(xié)議編程,實(shí)現(xiàn)者在實(shí)現(xiàn)時(shí)要嚴(yán)格按協(xié)議來辦。也就是Bill Joy同志說的,一邊翻rfc,一邊寫代碼的意思。面向?qū)ο缶幊淌侵该嫦虺橄蠛途呦蟆3橄蠛途呦笫敲艿慕y(tǒng)一體,不可能只有抽象沒有具象。一般懂得抽象的人都明白這個(gè)道理。 但有的人只知具象卻不知抽象為何物。

所以只有interface沒有實(shí)現(xiàn),或只有實(shí)現(xiàn)而沒有interface者是沒有用的,反OO的。

所以還是老老實(shí)實(shí)面向?qū)ο缶幊蹋嫦騾f(xié)議編程,或者什么都不面向,老老實(shí)實(shí)編程。

但是我很討厭討論這樣的術(shù)語,不如我們談?wù)勈裁唇忻嫦蝾I(lǐng)導(dǎo)的編程?面向用戶的編程?領(lǐng)導(dǎo)和用戶有時(shí)都很BT,我們就面向BT編程?


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 郓城县| 锡林浩特市| 南和县| 大同市| 涟源市| 新昌县| 康乐县| 益阳市| 城步| 巴中市| 锡林郭勒盟| 康定县| 介休市| 方正县| 石棉县| 浮山县| 柳河县| 贵定县| 泸水县| 项城市| 孟津县| 阜康市| 甘泉县| 湖州市| 望谟县| 苏尼特右旗| 剑川县| 靖边县| 玛多县| 巴楚县| 东乡| 济阳县| 大安市| 漳浦县| 通城县| 郴州市| 乐至县| 仲巴县| 新晃| 冀州市| 黑河市|