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

首頁 > 語言 > JavaScript > 正文

面向?qū)ο蟮腏avascript之二(接口實現(xiàn)介紹)

2024-05-06 14:22:34
字體:
供稿:網(wǎng)友
就足以說明接口在面向?qū)ο蟮念I(lǐng)域中有多重要。但JS卻不像其他面向?qū)ο蟮母呒壵Z言(C#,Java,C++等)擁有內(nèi)建的接口機制,以確定一組對象和另一組對象包含相似的的特性。所幸的是JS擁有強大的靈活性(我在上文已談過),這使得模仿接口特性又變得非常簡單。那么到底是接口呢?

接口,為一些具有相似行為的類之間(可能為同一種類型,也可能為不同類型)提供統(tǒng)一的方法定義,使這些類之間能夠很好的實現(xiàn)通信。

那使用接口到底有哪些好處呢?簡單地說,可提高系統(tǒng)相似模塊的重用性,使得不同類的通信更加穩(wěn)固。一旦實現(xiàn)接口,則必須實現(xiàn)接口中所有的方法。對于大型的Web項目來說,使得多個復(fù)雜模塊的相似功能模塊,只需要提供接口便可以提供一個實現(xiàn),而彼此之間不受到影響。但我們必須明確,接口也不是萬能的,由于JS是弱類型語言,你并不能強制其他的團(tuán)隊成員嚴(yán)格遵循你所提供的接口,不過你可以使用代碼規(guī)范和輔助類來緩解這個問題。另外,對系統(tǒng)性能也會造成一定的影響,應(yīng)根據(jù)你的系統(tǒng)需求復(fù)雜度而定。由于沒有內(nèi)建的interface和implements關(guān)鍵字,下面我們來看看JS是如何模仿實現(xiàn)接口的。

1. 最簡單也是效果最差實現(xiàn)接口的方式是使用注釋。即在注釋中使用interface來說明接口的意圖。
代碼如下:
/*
interface Composite {
function add(child);
function remove(child);
function getChild(index);
}
interface FormItem {
funtion save();
}
*/
var CompositeForm = function(id, name, action) {
// implements Composite, FormItem
}
CompositeForm.prototype = {
// implements Composite interface
add: function(child) {
//...
},
remove: function(child) {
//...
},
getChild: function(index) {
//...
}
// implements FormItem interface
save: function() {
//...
}
}

這并沒有很好的模擬接口的功能和確保Composite類確實實現(xiàn)了方法的集合,也沒有拋出錯誤通知程序員問題所在,除了說明以外不起任何作用,所有的一致性都需要程序員自覺完成。但它容易實現(xiàn),不需要額外的類或函數(shù),不影響文檔的大小和執(zhí)行速度,注釋也能很輕易的剝離,在一定程度上提高了重用性,因為提供了類的說明可以跟其他實現(xiàn)相同接口的類進(jìn)行通信。

2. 用屬性檢查模擬接口。類顯示聲明了要實現(xiàn)的接口,通過屬性檢查是否實現(xiàn)了相應(yīng)的接口。
代碼如下:
/*
interface Composite {
function add(child);
function remove(child);
function getChild(index);
}
interface FormItem {
funtion save();
}
*/
var CompositeForm = function(id, name, action) {
this.implementsInterfaces = ["Composite", "FormItem"];
//...
}
function checkInterfaces(formInstance) {
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 石楼县| 沐川县| 宁河县| 吴川市| 宁波市| 汉沽区| 阳谷县| 沾益县| 视频| 泰州市| 资兴市| 防城港市| 历史| 华阴市| 商洛市| 泸水县| 万源市| 广元市| 内乡县| 衡东县| 马鞍山市| 杨浦区| 凤台县| 油尖旺区| 黄浦区| 邵武市| 施甸县| 高邑县| 沐川县| 财经| 克东县| 乐昌市| 莫力| 如皋市| 晋江市| 青阳县| 平阴县| 商城县| 永吉县| 土默特左旗| 银川市|