2012-07-31 23 views
0

JavaScript的實際實現可能會超過kill,但我想編寫一個新的Element類和一個ElementList類,以更好地瞭解複合設計模式的工作原理。爲簡單起見假設我有在我的Element級以下:使用複合設計模式時,如何處理getters?

Element = function(nativeElement) { 
    this.element = nativeElement; 
} 
Element.prototype = { 
    addClass: function(classString) {...}, 
    clone: function(deep) {...}, 
    getHtml: function() {...}, 
    getId: function() {...}, 
    getNativeElement: function() {...}, 
    getStyle: function(style) {...}, 
    hasClass: function(classString) {...}, 
    removeClass: function(classString) {...}, 
    setHtml: function(html) {...}, 
    setId: function(id) {...}, 
    setStyle: function(style, value) {...} 
} 

我的第一個想法是隻實現,對於複合有意義的方法:

ElementList.prototype = { 
    addClass: function(classString) {...}, 
    clone: function(deep) {...}, 
    hasClass: function(classString) {...}, 
    removeClass: function(classString) {...}, 
    setHtml: function(html) {...}, 
    setStyle: function(style, value) {...} 
} 

不過那又怎麼樣接口是否每個類實現?我知道JS沒有接口,但對於練習,讓我們假設它。 ElementList課程將需要能夠與Element s或ElementList s一起使用,對嗎?我如何做到這一點是面向對象/設計模式的方式?我需要重新設計Element還是讓它實現各種接口?

回答

0

通常,您必須構建一個通用接口並將其應用於這兩個類,因此您將擁有兩個基接口,以及通過ElementList類使用它所需的方法和屬性,以及每個元素的專用接口if如果不需要,您可以直接在類中實現接口,就像您一樣,只抽象通用接口。