public interface ChineseCuisine {
/* 白切鸡 */
public void boiledChickenwithSauce();
/* 铁板牛肉 */
public void sizzlingBeefSteak();
/* 宫保鸡丁 */
public void kungPaoChicken();
}
法国菜接口:FrenchCuisine
public interface FrenchCuisine {
/* 马赛鱼汤 */
public void bouillabaisse();
/* 豆焖肉 */
public void cassoulet();
/* 法式炖鸡 */
public void pouleAuPot();
}
意大利接口:ItalyCuisine
public interface ItalyCuisine {
/* 焗茄汁千层面 */
public void lasagneWithTomatoAndCheese();
/* 虾仁烩饭 */
public void prawnRisotto();
/* 焦糖布丁 */
public void creamCaramel();
}
接口内部只是简单的罗列了一下,接下来就是具体的实现了
中国菜实现类:ChineseCuisineImpl
public class ChineseCuisineImpl implements ChineseCuisine {
@Override
public void boiledChickenWithSauce() {
/* 准备材料; 加工材料; 烹饪; 装盘 */
System.out.println("白切鸡");
}
@Override
public void sizzlingBeefSteak() {
/* 准备材料; 加工材料; 烹饪; 装盘 */
System.out.println("铁板牛肉");
}
@Override
public void kungPaoChicken() {
/* 准备材料; 加工材料; 烹饪; 装盘 */
System.out.println("宫保鸡丁");
}
}
法国菜实现类:FrenchCuisineImpl
public class FrenchCuisineImpl implements FrenchCuisine {
@Override
public void bouillabaisse() {
System.out.println("马赛鱼汤");
}
@Override
public void cassoulet() {
System.out.println("豆焖肉");
}
@Override
public void pouleAuPot() {
System.out.println("法式炖鸡");
}
}
意大利菜实现类:ItalyCuisineImpl
public class ItalyCuisineImpl implements ItalyCuisine {
@Override
public void lasagneWithTomatoAndCheese() {
System.out.println("焗茄汁千层面");
}
@Override
public void prawnRisotto() {
System.out.println("虾仁烩饭");
}
@Override
public void creamCaramel() {
System.out.println("焦糖布丁");
}
}
注意 关于具体实现的细节,这里是用注释加以代替,但在实际开发中,应该根据具体情况而定
以上,菜就算“做”好了,下面该实现菜单类了
菜单类:Menu
public class Menu {
private ChineseCuisine chineseCuisine;
private FrenchCuisine frenchCuisine;
private ItalyCuisine italyCuisine;
public Menu() {
chineseCuisine = new ChineseCuisineImpl();
frenchCuisine = new FrenchCuisineImpl();
italyCuisine = new ItalyCuisineImpl();
}
public void boiledChickenWithSauce() {
chineseCuisine.boiledChickenWithSauce();
}
public void sizzlingBeefSteak() {
chineseCuisine.sizzlingBeefSteak();
}
public void kungPaoChicken() {
chineseCuisine.kungPaoChicken();
}
public void bouillabaisse() {
frenchCuisine.bouillabaisse();
}
public void cassoulet() {
frenchCuisine.cassoulet();
}
public void pouleAuPot() {
frenchCuisine.cassoulet();
}
public void lasagneWithTomatoAndCheese() {
italyCuisine.lasagneWithTomatoAndCheese();
}
public void prawnRisotto() {
italyCuisine.prawnRisotto();
}
public void creamCaramel() {
italyCuisine.creamCaramel();
}
}
经过以上的步骤过后,就可以简单的测试一下了
Menu menu = new Menu();
System.out.println("客户一点餐:");
menu.boiledChickenWithSauce();
menu.lasagneWithTomatoAndCheese();
menu.sizzlingBeefSteak();
System.out.println("\n+-----------+\n");
System.out.println("客户二点餐:");
menu.cassoulet();
menu.pouleAuPot();
menu.creamCaramel();