客人到饭店吃饭,饭菜是由大厨做的 根据迪米特法则,客人不应该直接和大厨打交道,而
客人到饭店吃饭,饭菜是由大厨做的
根据迪米特法则,客人不应该直接和大厨打交道,而是通过一个中间人--服务员来点餐,服务员再把菜单交给大厨做饭。
具体实现如下:
```java
public class Client {
private Waitress waitress;
public Client(Waitress waitress) {
this.waitress = waitress;
}
public void order() {
waitress.takeOrder();
}
}
public class Waitress {
private Chef chef;
public Waitress(Chef chef) {
this.chef = chef;
}
public void takeOrder() {
//获取菜单
Listmenu = getMenu();
//把客人点的菜单交给大厨
chef.cook(menu);
}
private ListgetMenu() {
//返回菜单
return Arrays.asList("宫保鸡丁", "鱼香肉丝", "口水鸡");
}
}
public class Chef {
public void cook(Listmenu) {
//做饭
for(String dish : menu) {
System.out.println("正在做:" + dish);
}
System.out.println("饭菜已做好,请用餐。");
}
}
public class Test {
public static void main(String[] args) {
Chef chef = new Chef();
Waitress waitress = new Waitress(chef);
Client client = new Client(waitress);
client.order();
}
}
```

