抽象工厂:请MM去麦当劳吃汉堡,不同的MM有不同的口味,要每个都记住是一件烦人的事情,我一般采用Factory Method模式,带着MM到服务员那儿,说“要一个汉堡”,具体要什么样的汉堡呢,让MM直接跟服务员说就行了。
工厂方法模式:核心工厂类不再负责所有产品的创建,而是将具体创建的工作交给子类去做,成为一个抽象工厂角色,仅负责给出具体工厂类必须实现的接口,而不接触哪一个产品类应当被实例化这种细节。
//产品
interface Product{
public void eat();
}
//鸡翅
class jichi implements Product{
public void eat(){
System.out.println("吃鸡翅");
}
}
//鸡腿
class jitui implements Product{
public void eat(){
System.out.println("吃鸡腿");
}
}
//汉堡店
public interface HanBaoDian{
public Product shengchan();
}
//鸡腿工厂
class JT implements HanBaoDian{
public Product shengchan(){
return new jitui();
}
}
//鸡翅工厂
class JC implements HanBaoDian{
public Product shengchan(){
return new jichi();
}
}
public class Test{
public static void main(String args[]){
HanBaoDian jc=new JC();
Product jc=jc.shengchan();
jc.eat();
}
}
//如果要增加新的产品,那么实现HaoBaoDian这个接口,新增相应的产品,就可以实现了