场景:张三拥有一个蛋糕店,蛋糕店中可以做水果口味、慕斯口味、冰激凌口味等蛋糕,李四过生日,李四需要一个蛋糕,但是李四又不会自己生产蛋糕,因为李四需要向张三采购蛋糕。
角色:
1)蛋糕店(工厂)
2)蛋糕(接口)
3)水果蛋糕(实现类)
4)慕斯蛋糕(实现类)
5)李四(消费者)
代码如下:
public interface Cake {
void display();
}
public class FruitCake implements Cake{
public void display() {
System.out.println("thie is a fruit cake");
}
}
public class MousseCake implements Cake{
public void display() {
System.out.println("this is a MousseCake");
}
}
public class CakeFactory {
private static Map<String,Cake> cakeMap = new HashMap();
static {
cakeMap.put("fruit",new FruitCake());
cakeMap.put("mousse",new MousseCake());
}
public static Cake buyCake(String type){
return cakeMap.get(type.toLowerCase());
}
}
public class Lisi {
public static void main(String agrs[]){
CakeFactory.buyCake("fruit").display();
CakeFactory.buyCake("mousse").display();
}
}
李四购买蛋糕时,只需要告知蛋糕店,自己需要什么样的蛋糕,然后由蛋糕店进行生产,李四消费。