Java设计模式之普通工厂模式

来源:互联网 发布:小蜜蜂软件 编辑:程序博客网 时间:2024/05/16 00:34

静态工厂/普通工厂(factory)

概念:
由一个工厂对象决定创建出哪一种产品类的实例

优点:
外界可以不用直接创建具体产品对象,仅仅需要负责“消费”对象就可以了,而不必管这些对象究竟如何创建及如何组织的

适用:
出现了大量的产品需要创建,并且具有共同的接口,希望由实现了该接口的类来指定它所创建的对象的时候时,可以通过工厂方法模式进行创建。

普通工厂模式

示例代码:
这里写图片描述

/** * 交通工具的接口 * 相当于Product */public interface Moveable {    void run();}
/** * 交通工具的工厂类,用于生产一辆交通工具 * 相当于Creator */public abstract class VehicleFactory {    abstract Moveable create();  // 具体怎样生产让子类去实现}
/** * 飞机工厂类,用于生产飞机 * 相当于ConcreteCreator */public class PlaneFactory extends VehicleFactory{    public Moveable create() {        return new Plane();    }}
/** * 汽车工厂类,用于生产汽车 * 相当于ConcreteCreator * @author 落尘曦2017.9.8 */public class CarFactory extends VehicleFactory{    public Moveable create() {        return new Car();    }}
/** * 相当于ConcreteProduct */public class Plane implements Moveable{    public Plane(){};    public void run() {        System.out.println("开飞机...");    }}
/** * 相当于ConcreteProduct * @author 落尘曦2017.9.8 */public class Car implements Moveable{    public Car(){}    public void run(){        System.out.println("开车...");    }}

测试类:

/** * 静态工厂模式(普通工厂)的测试 * 实现 :任意定制交通工具类型和生产过程 */public class Test {    public static void main(String[] args) {        Moveable moveable = new CarFactory().create();  // 用汽车工厂创建一交通工具(单例)        moveable.run();        Moveable moveable2 = new PlaneFactory().create();  // 用飞机工厂创建一交通工具(单例)        moveable2.run();    }}
原创粉丝点击