1、概念
1.簡單工廠設計模式,顧名思義,劃重點,就是簡單。
2.工廠,什麼是工廠呢,聯繫我們生活來說就是一個工廠就是生產東西的地方
2、實際應用
1.假如我們現在有一個場景,比如一個用戶去買車,想買一個寶馬或者路虎。那麼根據面向對象我們可以這麼寫
新建一個對象代表寶馬汽車
package com.app.factory;
/**
* @ClassName: Bmw
* @Description (寶馬)
* @Date:2019/9/24 9:50
* @Author: lk
* @see
* @since JDK 1.8
*/
public class Bmw {
}
新建一個對象代表路虎汽車
package com.app.factory;
/**
* @ClassName: LandRover
* @Description (路虎汽車)
* @Date:2019/9/24 9:50
* @Author: lk
* @see
* @since JDK 1.8
*/
public class LandRover {
}
新建一個啓動類,代表用戶購買了路虎或者寶馬,因此直接這麼寫
package com.app.factory;
/**
* @ClassName: FactoryTest
* @Description (這裏用一句話描述這個類的作用)
* @Date:2019/9/24 9:51
* @Author: lk
* @see
* @since JDK 1.8
*/
public class FactoryMain{
public static void main(String[] args) {
/*
* 買了個寶馬車
*/
Bmw bmw = new Bmw();
/**
* 買了個路虎車
*/
LandRover landRover = new LandRover();
}
}
2.根據我們實際情況,new 代表新創建,用戶是不可能直接造車,用戶需要的是買車,而寶馬和路虎有一個公共點,那就都是車,因此我們可以這樣寫
package com.app.factory;
/**
* @ClassName: FactoryCar
* @Description (定義車接口 統一)
* @Date:2019/9/24 9:59
* @Author: lk
* @see
* @since JDK 1.8
*/
public interface Car {
/*
* 用戶買車啓動類
*/
void run();
}
實體類變更爲:
package com.app.factory;
/**
* @ClassName: Bmw
* @Description (寶馬)
* @Date:2019/9/24 9:50
* @Author: lk
* @see
* @since JDK 1.8
*/
public class Bmw implements Car{
@Override
public void run() {
System.out.println("購買了寶馬汽車");
}
}
package com.app.factory;
/**
* @ClassName: LandRover
* @Description (路虎汽車)
* @Date:2019/9/24 9:50
* @Author: lk
* @see
* @since JDK 1.8
*/
public class LandRover implements Car {
@Override
public void run() {
System.out.println("購買了路虎汽車");
}
}
編寫一個工廠,用戶傳入標記,來判斷用戶購買什麼汽車
package com.app.factory;
/**
* @ClassName: FactoryCar
* @Description (車的工廠)
* @Date:2019/9/24 15:00
* @Author: lk
* @see
* @since JDK 1.8
*/
public class FactoryCar {
/**
* 根據標記判斷用戶是需要買哪個車
* @Author: lk
*/
public static Car getBuyCar(String sign){
Car car=null;
if("luhu".equals(sign)){
car=new LandRover();
}else if("baoma".equals(sign)){
car=new Bmw();
}else{
throw new RuntimeException("沒有這個牌子的汽車");
}
return car;
}
}
簡單工廠設計模式大家學會了嗎?和小編一起努力吧