#工厂方法模式
* 对工厂模式进行改进,增强了代码的扩展性
#设计
* 一个 抽象产品(一个接口)Foods
interface Foods {
public void eat();
}
* 该 抽象产品的工厂(FoosFactory)用于生产Foods
interface FoodFactory {
public Foods getFoosFac();
}
* 定义 需要的产品 继承Foods,并重写其方法
class Rices implements Foods {
@Override
public void eat() {
System.out.println("i 吃米饭");
}
}
* 定义该产品工厂 implements 抽象产品工厂,用于生产具体的 产品
class RiceFactory implements FoodFactory {
@Override
public Foods getFoosFac() {
return new Rices();
}
}
#也可以定义一个 公共的类,用于 生产产品
class Business {
public static Foods getInstances(FoodFactory foodFactory) {
return foodFactory.getFoosFac();
}
}
每一个工厂名是不会轻易改变的,是趋于稳定的。
#uml类图的画法
* 依赖关系: 虚线+箭头
* 继承关系: 虚线+三角形