关于工厂模式
/* *工厂模式每个工厂只负责产生一种产品类。 *每次增加一个新的产品只需派生出一个这个产品的工厂即可,只扩展而不修改原来代码。符合OO的封闭修改,开放扩展原则。 */ interface Nokia{ //定义Nokia手机接口 void description(); } class N97 implements Nokia{ //N97子类实现接口 public void description(){ System.out.println("这是一款N97手机"); } } class N5230 implements Nokia{ //5230子类实现接口 public void description(){ System.out.println("这是一款5230手机"); } } interface NokiaFactory{ //定义生产Nokia手机的工厂接口 Nokia createNokiaPhone(); //定义抽象方法创建返回一款Nokia手机 } class N97Factory implements NokiaFactory{ //N97工厂实现接口 public Nokia createNokiaPhone(){ return new N97(); } } class N5230Factory implements NokiaFactory{ //5230工厂实现接口 public Nokia createNokiaPhone(){ return new N5230(); } } public class FactoryDemo{ public static void main(String args[]){ NokiaFactory factory=new N97Factory(); //通过子类为接口创建对象,此处可使用反射通过配置文件读取。 Nokia nokia=factory.createNokiaPhone(); nokia.description(); } }
程序输出结果为:这是一款N97手机。
总结:工厂方法设计模式就是有多个派生于一个基类(NokiaFactory工厂接口)的具体工厂类(N97Factory、N5230Factory),每个具体工厂只生产一种基类(Nokia接口)的一个派生类(N97、N5230具体子类)。
浙公网安备 33010602011771号