一、
1.抽象工厂(Creator)角色 工厂方法模式的核心,任何工厂类都必须实现这个接口。
public interface FruitFactory {
public Fruit getFruit();
}
2.具体工厂( Concrete Creator)角色 具体工厂类是抽象工厂的一个实现,负责实例化产品对象。
public class AppleFactory implements FruitFactory {
public Fruit getFruit() {
return new Apple();
}
}
3.抽象角色(Product) 工厂方法模式所创建的所有对象的父类,它负责描述所有实例所共有的公共接口。
public interface Fruit {
/*
* 采集
*/
public void get();
}
4.具体产品(Concrete Product)角色 工厂方法模式所创建的具体实例对象
public class Apple implements Fruit{
/*
* 采集
*/
public void get(){
System.out.println("采集苹果");
}
}
二、比较
工厂方法模式与简单工厂模式的比较:
当系统扩展需要添加新的产品对象时,仅仅需要添加一个具体对 象以及一个具体工厂对象,原有工厂对象不需要进行任何修改,也 不需要修改客户端,很好的符合了“开放-封闭”原则。而简单工厂 模式在添加新产品对象后不得不修改工厂方法,扩展性不好
三、简单应用