猫,老鼠什么的
来源:互联网 发布:刘嘉忆 知乎 编辑:程序博客网 时间:2024/04/23 23:12
public static void main(String[] args){
TestEnv env = new TestEnv(new Tom(), new Jerry(), new Jerry(), new Adm());
env.sound(Tom.cry);
}
class TestEnv{
Animal[] animals;
public TestEnv(Animal ... animals){
this.animals = animals;
}
public void sound(Sound x){
for(Animal a : animals){
a.listen(x);
}
}
}
class Sound {
//equals
}
interface Action{
public void doAction(Object o);
}
abstract class Animal{
public Map actions = new HashMap();
public void listen(Sound x){
Action action = (Action) actions.get(x);
if(action!=null){
action.doAction(x);
}
}
}
class Jerry extends Animal{
public Jerry(){
actions.put(Tom.cry, new RunAway());
}
class RunAway implements Action{
public void doAction(Object o) {
System.out.println("I should run away!");
}
}
}
class Tom extends Animal{
public static final Sound cry = new Sound();
}
class Adm extends Animal{
public Adm(){
actions.put(Tom.cry, wakeup);
}
static Action wakeup = new Action(){
public void doAction(Object o) {
System.out.println("Shut up, xxxxx cat!");
}
};
}
- 猫,老鼠什么的
- 猫吃老鼠问题
- 猫吃老鼠
- 猫吃老鼠 2
- FOJ1019 猫抓老鼠
- 1019猫捉老鼠
- 猫捉老鼠(1019)
- 猫捉老鼠
- 猫吃老鼠问题
- fZU_1019 猫捉老鼠
- 猫捉老鼠
- 老鼠见到猫~
- 猫吃老鼠问题
- 猫吃老鼠算法
- 1767 猫抓老鼠
- 猫吃老鼠算法
- 小游戏"猫捉老鼠"
- 猫抓老鼠
- 选择日历 界面
- SQLite如何删除、修改、重命名列?
- 软件模型设计基础
- Adobe AIR 1.5 Coobook已出,有人放到了Rapidshare上,这是地址
- 学习linux下的c/c++编程
- 猫,老鼠什么的
- SQL常用语句
- 删除所有的行
- 获取传感器温度-cpu 温度篇
- Matlab2009a下载地址及下载方法
- C#中运用Monitor类、Lock和Mutex类来同步多线程地执行
- Anti-XSS Library v3.1 Released
- http://groups.google.com/group/pongba-TopLanguage(牛)
- isql命令的参数详解