package cat;
public class MainTest {
/**
* @param args
*/
public static void main(String[] args) {
Cat cat=new Cat();
Mouse ms1=new Mouse("m1",cat);
Mouse ms2=new Mouse("m2",cat);
Master master=new Master("master",cat);
cat.aimAt();
}
}
package cat;
public interface Observe {
public void action();
}
package cat;
public class Mouse implements Observe {
private String name;
public Mouse(String name,Cat cat) {
this.name=name;
cat.addOb(this);
}
public void action() {
System.out.println(name + " wake up!");
}
}
package cat;
public class Master implements Observe {
private String name;
public Master(String name,Cat cat) {
this.name=name;
cat.addOb(this);
}
public void action() {
System.out.println(name + " wake up!");
}
}
package cat;
import java.util.ArrayList;
import java.util.List;
public class Cat {
private List<Observe> list=null;
public Cat(){
list=new ArrayList<Observe>();
}
public void aimAt() {
for(Observe ob:list){
ob.action();
}
}
public void addOb(Observe ob){
list.add(ob);
}
}