简单工厂模式

我喜欢简单、粗犷、暴力、有说服力的方式 ヾ(⌐■_■)ノ
笔记一下,不能入围GOF的23种设计模式的第24种设计模式
学习地址,膜拜大神

定义:从设计模式的类型上来说,简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。
简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。

既然是工厂对吧!那就开始生产东西了,以下汽车为例

package com.yexue.example.design_mode.single_factory;

public class Test {
    public static void main(String[] args) {
        /**
         * 需求:我要一辆宝马
         * 实现:调用汽车工厂生产宝马
         */
        ICar car = CarFactory.createCar("BaoMa");
        System.out.println(car.biaozhi());
    }

}

然后找到汽车工厂准备生产汽车了

package com.yexue.example.design_mode.single_factory;
/***
 * 简单工厂模式
 * @author yexue
 * @expl 车的工厂类
 * @time 2017年8月31日 下午2:38:00
 */
public class CarFactory {
    private CarFactory(){}
    
    /**
     * 以宝马和红旗为例
     * @param type
     * @return
     */
    public static ICar createCar(String type) {
        if(type.equals("BaoMa")){//宝马
            return new BaoMaCar();
        }else if(type.equals("HongQi")){
            return new HongQiCar();//红旗
        }else{
            throw new RuntimeException();
        }
    }

}

生产汽车的按照汽车的样子来生产
汽车模型

package com.yexue.example.design_mode.single_factory;

/**
 * 简单工厂模式
 * 
 * @author yexue
 * @expl 车模型
 * @time 2017年8月31日 下午2:36:52
 */
public interface ICar {
    /**
     * 车标
     */
    public String biaozhi();
    //其他车的属性
    //车门、大灯、玻璃、座位、轮胎、发动机....

}

按照车模型产出来的汽车

宝马

package com.yexue.example.design_mode.single_factory;
/**
 * 简单工厂模式
 * @author yexue
 * @expl 宝马
 * @time 2017年8月31日 下午2:57:26
 */
public class BaoMaCar implements ICar{

    @Override
    public String biaozhi() {
        return "宝马";
    }

}

红旗

package com.yexue.example.design_mode.single_factory;
/**
 * 简单工厂模式
 * @author yexue
 * @expl 红旗
 * @time 2017年8月31日 下午2:56:30
 */
public class HongQiCar implements ICar{
    @Override
    public String biaozhi() {
        return "红旗";
    }
    

}

就是这么粗犷、暴力


简单工厂模式_第1张图片

你可能感兴趣的:(简单工厂模式)