下载 23种设计模式源码 : http://download.csdn.net/download/knight_black_bob/8936043
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
创建型模式,共五种:
工厂方法模式 抽象工厂模式 单例模式 建造者模式 原型模式 结构型模式,共七种: 适配器模式 装饰器模式 代理模式 外观模式 桥接模式 组合模式 享元模式 行为型模式,共十一种: 策略模式 模板方法模式 观察者模式 迭代子模式 责任链模式 命令模式 备忘录模式 状态模式 访问者模式 中介者模式 解释器模式package 设计模式.观察者模式;
/**
* @author baoyou E-mail:[email protected]
* @version 创建时间:2015年7月27日 上午10:33:22
* des:
*/
public interface Watcher {
public void update(String str);
}
package 设计模式.观察者模式;
/**
* @author baoyou E-mail:[email protected]
* @version 创建时间:2015年7月27日 上午10:33:33
* des:
*/
public interface Watched {
public void addWatcher(Watcher watcher);
public void removeWatcher(Watcher watcher);
public void notifyWatchers(String str);
}
package 设计模式.观察者模式;
import java.util.ArrayList;
import java.util.List;
/**
* @author baoyou E-mail:[email protected]
* @version 创建时间:2015年7月27日 上午10:34:58
* des:
*/
public class ConcreteWatched implements Watched{
private List<Watcher> list = new ArrayList<Watcher>();
@Override
public void addWatcher(Watcher watcher) {
list.add(watcher);
}
@Override
public void removeWatcher(Watcher watcher) {
list.remove(watcher);
}
@Override
public void notifyWatchers(String str) {
for (Watcher watcher : list) {
watcher.update(str);
}
}
}
package 设计模式.观察者模式;
/**
* @author baoyou E-mail:[email protected]
* @version 创建时间:2015年7月27日 上午10:34:33
* des:
*/
public class ConcreteWatcher implements Watcher {
@Override
public void update(String str) {
System.out.println(str);
}
}
package 设计模式.观察者模式;
/**
* @author baoyou E-mail:[email protected]
* @version 创建时间:2015年7月27日 上午10:28:36
* des:
*/
public class ObserverTest {
public static void main(String[] args) {
Watched weather = new ConcreteWatched();
Watcher observer1 = new ConcreteWatcher();
Watcher observer2 = new ConcreteWatcher();
Watcher observer3 = new ConcreteWatcher();
weather.addWatcher(observer1);
weather.addWatcher(observer2);
weather.addWatcher(observer3);
weather.notifyWatchers("大风暴 要来了,船员们站好自己的岗位");
}
}

捐助开发者
在兴趣的驱动下,写一个
免费
的东西,有欣喜,也还有汗水,希望你喜欢我的作品,同时也能支持一下。 当然,有钱捧个钱场(右上角的爱心标志,支持支付宝和PayPal捐助),没钱捧个人场,谢谢各位。
谢谢您的赞助,我会做的更好!