抽象工厂模式是对工厂方法模式的改进:在工厂方法模式中,如果增加了新的产品那么就必须进入到工厂中去添加新的方法来产生新的产品,这样的方式对代码开发不是很友好。而抽象工厂模式就不同,在增加了新的产品以后,只需要再写一个相应的工厂即可。
package mode.abstract_factory;
/*抽象的水果工厂*/
public interface AbstractFruitFactory {
public Fruit getFruit();
}
package mode.abstract_factory;
/*抽象的水果工厂*/
public interface AbstractFruitFactory {
public Fruit getFruit();
}
package mode.abstract_factory;
/*苹果*/
public class Apple implements Fruit {
@Override
public void eat() {
System.out.println("吃苹果");
}
}
package mode.abstract_factory;
/**苹果工厂*/
public class AppleFactory implements AbstractFruitFactory {
@Override
public Fruit getFruit() {
return new Apple();
}
}
package mode.abstract_factory;
/**橘子*/
public class Orange implements Fruit {
@Override
public void eat() {
System.out.println("吃橘子");
}
}
package mode.abstract_factory;
/**橘子工厂*/
public class OrangeFactory implements AbstractFruitFactory {
@Override
public Fruit getFruit() {
return new Orange();
}
}
原文:http://blog.csdn.net/u012613903/article/details/44173195