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