java设计模式--简单工厂模式

  从今天开始学习java设计模式,记下并分享自己的一些笔记。

 简单工厂模式 :简单工厂模式又叫静态工厂方法模式,它定义了一个具体的工厂类负责创建一些类的实例。

工厂就是用来制作产品的地方。假设有一个工厂可以生产汽车和自行车,他们具有相同的特性行驶。

首先,我们先创建一个具有相同特性的产品抽象类Product() 它具有一个抽象方法run(),创建两个产品继承产品类

public abstract class Product {

    public abstract void run();

}

public class Car extends Product {
    @Override
    public void run() {
        System.out.println("drive car");
    }
}

public class Bicycle extends Product {
    @Override
    public void run() {
        System.out.println("ride on a bicycle");
    }
}

接着创建一个工厂用来生产产品

public class Factory {
    public static Product createProduct(String productName){
        Product product = null;
        switch (productName){
            case "car":
                product = new Car();
                break;
            case "bicycle" :
                product = new Bicycle();
                break;
        }
        return product;
    }
}

当顾客想要某种商品时直接告诉工厂就可以了,而不关心工厂具体生产产品的细节

public class Customer {
    public static void main(String[] args) {
        Product car = Factory.createProduct("car");
        car.run();
        Product bicycle = Factory.createProduct("bicycle");
        bicycle.run();
    }
}

优点:顾客不再过问产品生产细节,全由工厂负责,顾客直接面向工厂对象,明确了个各类的职责。

缺点:当工厂需要添加新的产品时,就需要去修改工厂类,不利于后期维护。

 

点赞