簡(jiǎn)單工廠模式是類的創(chuàng)建模式,又叫做靜態(tài)工廠方法模式(Static Factory Method)。
簡(jiǎn)單工廠模式是由一個(gè)工廠對(duì)象來(lái)決定創(chuàng)建出哪一種產(chǎn)品類的對(duì)象。
簡(jiǎn)單工廠模式就是由一個(gè)工廠類根據(jù)傳入的參數(shù)決定創(chuàng)建出哪一種產(chǎn)品類的對(duì)象。
/*******************************************/
package 工廠.簡(jiǎn)單工廠模式;
public interface 汽車 {
public void 開(kāi)車();
public void 停車();
public void 年檢();
public void 鳴笛();
//...等等
}
/*******************************************/
package 工廠.簡(jiǎn)單工廠模式;
public class 寶馬汽車 implements 汽車 {
public static final String ;
public static final String BRAND = "寶馬汽車";
public void 開(kāi)車() {
System.out.println(BRAND+".開(kāi)車");
}
public void 停車() {
System.out.println(BRAND+".停車");
}
public void 年檢() {
System.out.println(BRAND+".年檢");
}
public void 鳴笛() {
System.out.println(BRAND+".鳴笛");
}
}
/*******************************************/
package 工廠.簡(jiǎn)單工廠模式;
public class 奔馳汽車 implements 汽車 {
public static final String ;
public static final String BRAND = "奔馳汽車";
public void 開(kāi)車() {
System.out.println(BRAND+".開(kāi)車");
}
public void 停車() {
System.out.println(BRAND+".停車");
}
public void 年檢() {
System.out.println(BRAND+".年檢");
}
public void 鳴笛() {
System.out.println(BRAND+".鳴笛");
}
}
/*******************************************/
package 工廠.簡(jiǎn)單工廠模式;
public class 汽車銷售工廠 {
public static 汽車 試車(String ID) throws Exception {
if (ID.equals(寶馬汽車.ID)) {
return new 寶馬汽車();
} else if (ID.equals(奔馳汽車.ID)) {
return new 奔馳汽車();
}
throw new Exception("沒(méi)有這個(gè)品牌的汽車!");
}
}
/*******************************************/
package 工廠.簡(jiǎn)單工廠模式;
public class 消費(fèi)者 {
public void 試試汽車(String ID) {
try {
汽車 car = 汽車銷售工廠.試車(ID);
car.開(kāi)車();
car.停車();
car.鳴笛();
} catch (Exception e) {
System.out.println("連寶馬都沒(méi)有,換個(gè)銷售公司!");
e.printStackTrace();
}
}
public static void main(String args[]) {
消費(fèi)者 王二 = new 消費(fèi)者();
王二.試試汽車(寶馬汽車.ID);
王二.試試汽車(奔馳汽車.ID);
}
}
</script>