public class American extends Coffee{ public String getName(){ return "美式咖啡"; } }
public class Client { public static void main(String[] args) { CoffeeStore coffeeStore =new CoffeeStore(); Coffeefactory coffeefactory2=new Coffeefactory(); Coffee coffee =coffeeStore.orderCoffee("Latte",coffeefactory2); System.out.println(coffee.getName()); System.out.println(coffee); } }
public abstract class Coffee{ public abstract String getName(); public void addSuggar(){ System.out.println("加糖"); } public void addMilk(){ System.out.println("加奶"); } }
public class Coffeefactory { public Coffee productCOffee(String type) { Coffee coffee = null; if ("Latte".equals((type))) { coffee = new LatteCoffee(); } else if ("American".equals((type))) { coffee = new American(); } return coffee; } }
public class CoffeeStore { public Coffee orderCoffee(String type,Coffeefactory factory){ Coffee coffee= factory.productCOffee(type); coffee.addMilk(); coffee.addSuggar(); return coffee; } }
public class LatteCoffee extends Coffee { public String getName() { return "拿铁咖啡"; } }
你会得到一杯加糖加奶的拿铁咖啡