package observer_pattern;
public interface Observer {
boolean monitor(Teacher teacher);//监听不同老师
int hint();//监听到了之后的放哨行为
boolean changelister();//管理听者
}
package observer_pattern;
public class Monitor_Observer implements Observer {
Teacher teacher ;
int type;
public boolean monitor(Teacher teacher) {
// TODO Auto-generated method stub
this.teacher = teacher;
return true;
}
@Override
public int hint() {
// TODO Auto-generated method stub
this.type = teacher.type;
if(type==1){
System.out.println("班长举右手示意数学老师来了");
}
else{
System.out.println("班长举左手示意语文老师来了");
}
return this.type;
}
@Override
public boolean changelister() {
// TODO Auto-generated method stub
return false;
}
}
package observer_pattern;
public interface Listern {
void action(int message);
}
package observer_pattern;
public class LaoWang implements Listern {
@Override
// TODO Auto-generated method stub
public void action(int message) {
// TODO Auto-generated method stub
if(message==1){
System.out.println("我拿起数学本");
}
else{
System.out.println(message);
System.out.println("我拿起语文本");
}
}
}
package observer_pattern;
public class XiaoMing implements Listern {
@Override
public void action(int message) {
// TODO Auto-generated method stub
if(message==1){
System.out.println("我拿起数学本");
}
else{
System.out.println("我拿起语文本");
}
}
}
package observer_pattern;
public abstract class Teacher {
int type;
abstract int teacher_type();
}
package observer_pattern;
public class Math_Teacher extends Teacher {
Math_Teacher(){
teacher_type();
}
@Override
int teacher_type() {
// TODO Auto-generated method stub
this.type = 1;
return type;
}
}
package observer_pattern;
public class Chinese_Teacher extends Teacher {
Chinese_Teacher(){
teacher_type();
}
public int teacher_type() {
// TODO Auto-generated method stub
this.type = 2;
return type;
}
}
package observer_pattern;
public class test {
public static void main(String[] args) {
Monitor_Observer monitor = new Monitor_Observer();
monitor.monitor(new Math_Teacher());
LaoWang lw = new LaoWang();
XiaoMing xm = new XiaoMing();
lw.action(monitor.hint());
xm.action(monitor.hint());
}
}