关于工厂模式

/*
 *工厂模式每个工厂只负责产生一种产品类。
 *每次增加一个新的产品只需派生出一个这个产品的工厂即可,只扩展而不修改原来代码。符合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具体子类)。

posted on 2012-10-14 19:44  百零八1900  阅读(163)  评论(0)    收藏  举报

导航