简单工厂模式是设计模式中最为简单的。主要有三个类,一个抽象类、一个实体类和一个工厂类。工厂类提供一个静态工厂方法,根据传入参数决定返回值。也叫静态工厂模式。对象的创建在工厂方法中进行。

抽象类Phone.java

abstract Phone {
    public void display();
}

实体类HuaWeiPhone.java

class HuaWeiPhone{
    public void display(){
        //具体实现
        System.out.print("HuaWeiPhone");
    }
}

实体类iPhone.java

class iPhone{
    public void display(){
        //具体实现
        System.out.print("iPhone");
    }
}

工厂类PhoneFactory

class PhoneFactory{
    public static Phone getPhone(String type){
        Phone phone = null;
        if("HuaWei".equals(type)){
            phone = new HuaWeiPhone();
        }else if("Apple".equals(type)){
            phone = new iPhone();
        }
        return phone;
    }
}

客户端调用工厂类中的工厂方法即可

class Client{
    public static void main(String args[]){
        Phone phone = null;
        phone = PhoneFactory.getPhone("HuaWei");
        phone.display();
    }
}

客户端调用可以改造成从配置文件取产品类型。如果要取iPhone的话,直接把配置文件里面的产品类型改成Apple就好了,无需修改客户端代码。符合开闭原则

(完)