Java 设计模式_工厂模式

来源:互联网 发布:淘宝怎么找到超a的店铺 编辑:程序博客网 时间:2024/06/15 14:06

Java 设计模式_工厂模式


本文由 Luzhuo 编写,转发请保留该信息.
原文: http://blog.csdn.net/rozol/article/details/76060105


通过一个工厂类帮你创建对象
工厂模式分为: 工厂类模式 / 抽象工厂模式

提前定义的bean类

// Car.javapublic class Car implements Product{    public Car() {}    @Override    public void run(){        System.out.println("The car is running.");    }}
// Bicycle .javapublic class Bicycle implements Product {    public Bicycle() {}    @Override    public void run(){        System.out.println("The bicycle is running.");    }}
// Product.javapublic interface Product {    void run();}

工厂类模式

public class 工厂类 { //工厂类    public 工厂类() {}    public static Product getInstance(String type){        switch (type) {        case "Car":            return new Car();        case "Bicycle":            return new Bicycle();        default:            throw new IllegalArgumentException();        }    }}
  • 接受参数, 根据参数来决定返回实现同一接口的不同类的实例

抽象工厂模式

public interface Factory {    public Car getCar();     public Bicycle getBicycle();}
public class TransportFactory implements Factory{    @Override    public Car getCar(){        return new Car();    }    @Override    public Bicycle getBicycle(){        return new Bicycle();    }}
  • 对产品进行分类
  • (产品的分类是抽象工厂的重点), 用于创建一系列产品

使用

public class Test {    public static void main(String[] args) {        // 工厂类        工厂类();        // 抽象工厂        抽象工厂();    }    private static void 工厂类() {        Product car = 工厂类.getInstance("Car");        Product bicycle = 工厂类.getInstance("Bicycle");        car.run();        bicycle.run();    }    /**     * (产品的分类是抽象工厂的重点), 用于创建一系列产品     */    private static void 抽象工厂() {        Factory transport = new TransportFactory();        Car car = transport.getCar();        Bicycle bicycle = transport.getBicycle();        car.run();        bicycle.run();    }}
原创粉丝点击