今天開始看《設(shè)計模式-JAVA語言中的應(yīng)用》一書,學(xué)習(xí)一下設(shè)計模式的理論。
早上讀完第一章,Iterator——迭代器。
首先定義了Aggregate接口:
public interface Aggregate {
????? public abstract Iterator? iterator();
}
然后定義了Iterator接口:
public interface Iterator {
???? public abstract boolean hasNext();
???? public abstract Object next();
}
……
書中說到:
???????? “Aggregate接口所聲明的方法只有iterator方法一個,這是為了建立一個可以對應(yīng)聚合的Iterator。
???????? 如欲遞增、遍歷或逐一檢查某個聚合時,利用iterator方法即可建立一個實現(xiàn)Iterator接口的類對象實例(instance)。”
讀完了整章節(jié),明白了各接口類和實現(xiàn)類之間的關(guān)系,使用方法及設(shè)計思想。
其中有這樣一句話:不要只用具體類寫程序,要利用抽象類和接口才對。
但Aggregate接口的作用始終沒能明白。為什么要設(shè)計這個接口?它的作用是什么??聚集的含意又是什么呢??
評論
# re: 設(shè)計模式學(xué)習(xí)筆記之一:聚集的作用? 回復(fù) 更多評論
2006-09-15 13:53 by lijiajia418這有什么不好理解的了?Aggregate 指的是一組數(shù)據(jù)的集合,猶如集合類中的Collection,List,Set....Aggregate 的實現(xiàn)類繼承并實現(xiàn)了iterator接口以便返回不同的Iterator迭代器,但是在java的標(biāo)準(zhǔn)AIP中沒有抽象出Aggregate 而是在List,Set接口中定義了iterator()的方法簽名。
哦~~原來如此~呵呵!
原來就是像是List類一樣,是為了更好的遍歷~
謝謝!~
原來就是像是List類一樣,是為了更好的遍歷~
謝謝!~
說實話,你的分析確實很好,理解能力遠在我之上。
呵呵,怎么像個專家說話呢。
我個人認為,你的編程規(guī)范需要改進。
有些方面做的不是很完美。
期待你的更改。
有時間去我的blog玩去
呵呵,怎么像個專家說話呢。
我個人認為,你的編程規(guī)范需要改進。
有些方面做的不是很完美。
期待你的更改。
有時間去我的blog玩去
在定義了Aggregate接口:
public interface Aggregate {
public abstract Iterator iterator();
}
Iterator 是一個抽象的方法,可是我看過一本書,曾經(jīng)說過:“含有抽象方法的類必須被聲明為抽象類”可是這里這個抽象的方法卻是在一個接口中,難道可以這樣定義嗎?謝謝
public interface Aggregate {
public abstract Iterator iterator();
}
Iterator 是一個抽象的方法,可是我看過一本書,曾經(jīng)說過:“含有抽象方法的類必須被聲明為抽象類”可是這里這個抽象的方法卻是在一個接口中,難道可以這樣定義嗎?謝謝
to ff_soft:
當(dāng)然可以,而且也應(yīng)該這么定義為接口而不是抽象類。接口類中的方法全為抽象方法,沒有方法體,只有方法聲明。而抽象類中可以有具體方法。
當(dāng)然可以,而且也應(yīng)該這么定義為接口而不是抽象類。接口類中的方法全為抽象方法,沒有方法體,只有方法聲明。而抽象類中可以有具體方法。
只有注冊用戶登錄后才能發(fā)表評論。 | ||
![]() |
||
網(wǎng)站導(dǎo)航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
|
||
相關(guān)文章:
|
||