简单工厂设计模式

工厂模式是我们最常用的实例化对象模式,是用工厂方法代替new操作的一种模式,用于创建复杂的对象创建,避免类的复杂创建和应用写在一个类里。

简单工厂:又称为静态工厂,属于类创建型模式,专门定义一个工厂来负责创建其他类的实例。在简单工厂模式中,可以根据参数的不同返回不同类的实例。

Factory:工厂类,简单工厂模式的核心,它负责实现创建所有实例的内部逻辑。工厂类的创建产品类的方法可以被外界直接调用,创建所需的产品对象。

IProduct:抽象产品类,简单工厂模式所创建的所有对象的父类,它负责描述所有实例所共有的公共接口。

Product:具体产品类,是简单工厂模式的创建目标。

实例如下:

1 首先创建一个水果接口(抽象产品)

public interface Fruit {
    void name();
}

2 创建具体产品,苹果和梨

public class Apple implements Fruit {
    @Override
    public void name() {
        System.out.println("我是苹果");
    }
}
public class Pear implements Fruit{
    @Override
    public void name() {
        System.out.println("我是梨");
    }
}

3 创建产品工厂

//简单工厂,静态工厂
public class SimpleFruitFactory {
    //第一种
    public static Fruit getFruit(String type) {
        if ("apple".equals(type)) {
            return new Apple();
        } else if ("pear".equals(type)) {
            return new Pear();
        }else {
            return null;
        }
    }
    //第二种
    public static Fruit getApple(){
        return new Apple();
    }
    public static Fruit getPear(){
        return new Pear();
    }
}

4 使用举例:

public class Consumer {
    public static void main(String[] args) {
        //每当我们水果的时候,需要自己new一个,相当于自己栽培
        //第一种,自己从头建造
        Apple apple = new Apple();
        Pear pear = new Pear();

        //第二种,从工厂中取
        //Apple apple2 = (Apple) SimpleFruitFactory.getApple();
        // Pear pear3 = (Pear) SimpleFruitFactory.getPear();
        Apple apple2 = (Apple) SimpleFruitFactory.getFruit("apple");
        Pear pear3 = (Pear) SimpleFruitFactory.getFruit("pear");
    }
}

 

posted on 2023-02-10 10:20  蔻德盈  阅读(26)  评论(0)    收藏  举报