//做菜所需要的步骤
//有具体叫张三去做这个菜,每个人才做,放盐,放油,加水等都是不一样的,但是都必须做这样的步骤
//有具体叫李四去做这个菜
//客户来了,不是说客户交张三去做菜,然后放盐放油,放水,都客户叫,这个指挥者做的事情
//客户调用
public interface Cai {
public void fangyan(); //放盐
public void fangyou(); //放油
public void jiashui(); //加水,,,等等是做菜不可缺少的步骤
.......
}
//有具体叫张三去做这个菜,每个人才做,放盐,放油,加水等都是不一样的,但是都必须做这样的步骤
public class ZhangSan implements Cai {
public void fangyan() {
System.out.println("ZhangSanfangyan");
}
public void fangyou() {
System.out.println("ZhangSanfangyou");
}
public void jiashui() {
System.out.println("ZhangJiashui");
}
}
//有具体叫李四去做这个菜
public class LiSi implements Cai {
public void fangyan() {
System.out.println("LiSi fangyan");
}
public void fangyou() {
System.out.println("LiSi fangyou");
}
public void jiashui() {
System.out.println("LiSi Jiashui");
}
}
//客户来了,不是说客户交张三去做菜,然后放盐放油,放水,都客户叫,这个指挥者做的事情
public class Director {
Cai cai;
Public Director(Cai cai) {
this.cai = cai;
}
public void zuocai() {
cai.fangyan();
cai.fangyou();
cai.fangshui();
}
}
//客户调用
public class test {
public static void main(String[] args) {
Cai cai = new ZhangSan();//张三做菜
Director d = new Director(cai); //指挥者
d.zuocai();//我要指挥者弄菜,其实指挥者叫张三弄菜去了。
}
}