import java.util.LinkedList;
import java.util.List;
public class ObserverPatternDemo {
public static void main(String [] args){
Novelist novelist = new Novelist();
novelist.addReader(new Reader());
novelist.addReader(new Reader());
novelist.addReader(new Reader());
novelist.addReader(new Reader());
novelist.addReader(new Reader());
novelist.notifyReaders();
}
}
class Novelist {
List<InfoReceiver> readerList = new LinkedList();
public void addReader(InfoReceiver reader){
readerList.add(reader);
}
public void notifyReaders(){
for(int i = 0 ; i < readerList.size() ; i++){
Info info = new Info(i);
readerList.get(i).readInfo(info);
}
}
}
class Info{
int id;
Info(int id){
this.id = id;
}
public void printInfo(){
System.out.println("reader " + this.id + " will receiver my newest book");
}
}
interface InfoReceiver {
public void readInfo(Info info);
}
class Reader implements InfoReceiver{
@Override
public void readInfo(Info info) {
info.printInfo();
}
}
網頁
BloggerAds 廣告
標籤
- Java (96)
- Android (27)
- 演算法 (21)
- c++ (19)
- JavaScript (7)
- OpenMp (6)
- Design Pattern (4)
- 日文歌曲 (4)
- 資料結構 (4)
- Foundation Knowledge Of Programming (3)
- QUT (2)
- CodingHomeWork (1)
- Database (1)
- 英文歌詞 (1)
搜尋此網誌
2013年1月8日 星期二
Observer pattern demo (觀察者模式)
訂閱:
文章 (Atom)
我的網誌清單
標籤
日文歌曲
(4)
股市
(7)
股票
(9)
英文歌詞
(1)
時事
(1)
硬體(hardware)
(1)
資料結構
(4)
演算法
(21)
數學(Math)
(4)
ACM
(3)
ajax
(7)
algorithms
(1)
Android
(27)
Blog Notes(部落格記事)
(6)
C
(9)
c++
(19)
CodingHomeWork
(1)
Database
(1)
Design Pattern
(4)
Foundation Knowledge Of Programming
(3)
GWT
(1)
How
(2)
J2EE
(1)
Java
(96)
Java語言
(4)
JavaScript
(7)
Leetcode
(4)
LOL
(1)
OpenMp
(6)
QUT
(2)
Uva
(2)
Yahoo知識問答
(11)