正文
BaseGF
createGF
(GFType gFType)
{
switch
(gFType) {
case
SI_CHUAN:
return
new
SiChuanGF
()
;
case
SHAN_DONG:
return
new
ShanDongGF
()
;
default
:
case
HE_BEI:
return
new
HeBeiGF
()
;
}
}
}
// 这个就是神灯的创建女朋友的程序了
public class Main {
public static void main(String[] args) {
BaseGF siChuanGirl = GFFactory.createGF(GFType.SI_CHUAN);
siChuanGirl.eatFood();
siChuanGirl.shopping();
// BaseGF shanDongGirl = GFFactory.createGF(GFType.SHAN_DONG);
// shanDongGirl.eatFood();
// shanDongGirl.shopping();
//
// BaseGF heBeiGirl = GFFactory.createGF(GFType.HE_BEI);
// heBeiGirl.eatFood();
// heBeiGirl.shopping();
}
}
// 有了女朋友之后是这样的 -_-
Eat sichuan food...
Go shopping every day...
// Eat shandong food...
// Go shopping every day...
// Eat hebei food...
// Go shopping every day...
简单工厂模式: 专门定义一个类用来负责创建其他类的实例,被创建的实例通常都具有共同的父类.
简单工厂模式UML类图.png
-
因为我刚才还没决定,神灯就帮我把川妹子创建出来了,所以我嘟囔着,我这还没决定呢啊,大哥,你这手速有点快吧
-
神灯: "...你这个人真的是难伺候"
-
我: "我能不能要一个彩云之南的妹子? "
-
神灯: "彩云之南是哪? "
-
我: "云南啊"
-
神灯: "...你怎么这么麻烦,你知道我要改多少东西吗,我的enum(GFType)要改, GFFactory要增加case"
-
我: "神灯大哥,好人做到底么,好不好? "
-
神灯: "要不我给你一个接口好了,你自己想创建哪里的就创建那里的"
-
我的内心...嘿嘿嘿...
用代码展示就是:
// 创建女朋友的接口,想要哪里的女朋友,实现这个接口就可以了
public interface IGFFactory {
BaseGF createGF();
}
// 没有改变
public abstract class BaseGF {
public abstract void eatFood();
public void shopping() {
System.out.println("Go shopping every day...");
};
}
// 创建川妹子的工厂
public