创建多个对象时考虑适用。依葫芦画瓢<(* ̄▽ ̄*)/
分类:简单工厂(也叫静态工厂)、工厂方法(解决新增产品需要修改工厂类的缺点)、抽象工厂
一 简单工厂-一个工厂类
1
public class DrinkFactory {
/**
* 工厂根据传入的参数来管理创建对象
* 缺点:新增饮品,需要修改该工厂类
*
* @param type 区分产品的参数
*/
IDrinkProduct getDrink(String type) {
IDrinkProduct drink = null;
if ("wine".equals(type)) {
drink = new Wine();
} else if ("water".equals(type)) {
drink = new Water();
}
return drink;
}
}
单例模式的 getInstance()就是简单工厂。
二 工厂方法(解决新增产品需要修改工厂类的缺点) -- 多个工厂类
缺点:又引入多个工厂类,类急剧增多,所以不适用很多很多对象
其中抽象类Factory可以改为接口IFactory
三 抽象工厂 就是在上面IFactory 定义多个创建方法