1. 程式人生 > >JAVA 工廠模式:簡單工廠

JAVA 工廠模式:簡單工廠

int oba 創建型模式 face gen 工廠方法 getc 字符 auto

簡單工廠模式(SimpleFactory Pattern):

  又稱為靜態工廠方法(Static Factory Method)模式,它屬於類創建型模式。在簡單工廠模式中,可以根據參數的不同返回不同類的實例。簡單工廠模式專門定義一個類來負責創建其他類的實例,被創建的實例通常都具有共同的父類

1. 汽車接口

package com.lf.shejimoshi.Factory;

/**
 * @classDesc: 類描述:(汽車接口) 
 * @author baobaolan
 * @createTime 2018年1月10日  
 * @version v1.0
 */
public interface
Car { void run(); }

2.奧迪類

package com.lf.shejimoshi.Factory;

/**
 * @classDesc: 類描述:(奧迪車類) 
 * @author baobaolan
 * @createTime 2018年1月10日  
 * @version v1.0
 */
public class AodiCar implements Car {

    @Override
    public void run() {
        // TODO Auto-generated method stub
        System.out.println("生成了一輛奧迪!");
    }

}

3.奔馳類

package com.lf.shejimoshi.Factory;

/**
 * @classDesc: 類描述:(奔馳車類) 
 * @author baobaolan
 * @createTime 2018年1月10日  
 * @version v1.0
 */
public class BenchiCar implements Car {

    @Override
    public void run() {
        // TODO Auto-generated method stub
        System.out.println("生成了一輛奔馳!");
    }

}

4.汽車工廠

package com.lf.shejimoshi.Factory;

/**
 * @classDesc: 類描述:(汽車工廠) 
 * @author baobaolan
 * @createTime 2018年1月10日  
 * @version v1.0
 */
public class CarFactory {
    
    //jdk1.7 switch支持字符串
    public static Car getCar(String carType){
        Car car = null;
        switch (carType) {
        case "奧迪":
            car = new AodiCar(); 
            break;
        case "奔馳":
            car = new BenchiCar();
            break;    
        default:
            break;
        }
        return car;
    }
    
}

5.測試類

package com.lf.shejimoshi.Factory;

/**
 * @classDesc: 類描述:() 
 * @author baobaolan
 * @createTime 2018年1月10日  
 * @version v1.0
 */
public class Main {
    
    public static void main(String[] args) {
        Car car = CarFactory.getCar("奧迪");
        car.run();
                
    }
}

6.結果打印

技術分享圖片

JAVA 工廠模式:簡單工廠