public class Test{
public static void main(String[] arg) {
FoodMenu foodMenu = new ChinaChief();
FoodMenu foodMenu1 = new AmericenChief();
Customer customer = new Customer(foodMenu1);
Customer customer2 = new Customer(foodMenu);
customer.order();
customer2.order();
}
}
public class Customer {
private FoodMenu foodMenu;
public Customer() {
}
public Customer(FoodMenu foodMenu) {
this.foodMenu = foodMenu;
}
public FoodMenu getFoodMenu() {
return foodMenu;
}
public void setFoodMenu(FoodMenu foodMenu) {
this.foodMenu = foodMenu;
}
public void order(){
this.getFoodMenu().qingJiaoChaoJiDan();
this.getFoodMenu().xiHongShiChaoJiDan();
}
}
interface FoodMenu {
void xiHongShiChaoJiDan();
void qingJiaoChaoJiDan();
}
public class ChinaChief implements FoodMenu{
@Override
public void xiHongShiChaoJiDan() {
System.out.println("我正在做中国口味的西红柿炒鸡蛋");
}
@Override
public void qingJiaoChaoJiDan() {
System.out.println("我正在做中国口味的青椒炒鸡蛋");
}
}
public class AmericenChief implements FoodMenu{
@Override
public void xiHongShiChaoJiDan() {
System.out.println("我正在做西式的西红柿炒鸡蛋");
}
@Override
public void qingJiaoChaoJiDan() {
System.out.println("我正在做西式的青椒炒鸡蛋");
}
}
顾客拥有菜单,厨师实现菜单,使得顾客和厨师之间不再有关系,真正有关系的是顾客和菜单,厨师和菜单,有了菜单顾客就可以点菜,有了菜单厨师就可以炒菜;