import java.util.Scanner;
interface MethodDelayExec{
public void exec();
}
class Person implements MethodDelayExec,Runnable{
/**
* @param args
*/
Server ser;
/*Server这个类是一个服务于Person的,它的的作用是当控制台有输入内容是通知Person做它的事情这里是执行myDo()
这个方法和myDo1方法,
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new Person();
}
public Person(){
ser=new Server();
ser.setMde(this);//目的是为了执行this的myDo()和myDo()1两个方法,当屏幕有输入的时候
Thread th=new Thread(ser);
th.start();
}
public void myDo(){
System.out.println("屏幕上有消息输入");
}
public void myDo1(){
System.out.println("哈哈");
}
@Override
public void exec() {
this.myDo();
this.myDo1();
}
@Override
public void run() {
//在这里Person还可以干其他事情,
}
}
class Server implements Runnable{
MethodDelayExec mde;
public void setMde(MethodDelayExec mde){
this.mde=mde;
}
@Override
public void run() {
while(true){
Scanner scan=new Scanner(System.in);
String str=scan.nextLine();
mde.exec();//当控制台有输入时会执行某个对象的方法了
}
}
}
------解决方案--------------------------------------------------------
预设模式
------解决方案--------------------------------------------------------
啥模式,就是一般的回调
当 Server 收到控制台的输入以后,就回调 MethodDelayExec 的exec
------解决方案--------------------------------------------------------
觉得楼主这里是一个面向接口编程的例子,Person 实现了 MethodDelayExec接口,然后Server 去调用接口的方法。
楼主如果真的发现了一种新的设计模式,那还是为中国的IT业贡献很大的,但这个还不算什么新的设计模式。