Skip to content

Commit b253859

Browse files
committed
simple factory
1 parent 804ad99 commit b253859

6 files changed

Lines changed: 94 additions & 0 deletions

File tree

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package com.anly.designpattern.simplefactory;
2+
3+
/**
4+
* Created by mingjun on 2016/11/14.
5+
*/
6+
public class Coke extends Drink {
7+
@Override
8+
String getInstantPackage() {
9+
return "速溶可乐粉";
10+
}
11+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package com.anly.designpattern.simplefactory;
2+
3+
/**
4+
* Created by mingjun on 2016/11/14.
5+
*/
6+
public class Cousins {
7+
8+
public static Drink create(String drinkType) {
9+
10+
// Java7开始, switch支持String
11+
switch (drinkType) {
12+
case "橙汁":
13+
return new OrangeJuice();
14+
15+
case "酸梅汤":
16+
return new PlumJuice();
17+
18+
case "可乐":
19+
return new Coke();
20+
21+
default:
22+
return new OrangeJuice();
23+
}
24+
}
25+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package com.anly.designpattern.simplefactory;
2+
3+
/**
4+
* Created by mingjun on 2016/11/14.
5+
*/
6+
public abstract class Drink {
7+
8+
public void make() {
9+
// 1. 拿出一次性饮料杯
10+
System.out.println("拿出一次性饮料杯");
11+
12+
// 2. 加入速溶橙汁粉
13+
System.out.println("加入" + getInstantPackage());
14+
15+
// 3. 加水冲兑
16+
System.out.println("加水");
17+
18+
// 4. 加盖, 打包
19+
System.out.println("加盖, 打包");
20+
}
21+
22+
abstract String getInstantPackage();
23+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package com.anly.designpattern.simplefactory;
2+
3+
/**
4+
* Created by mingjun on 2016/11/14.
5+
*/
6+
public class OrangeJuice extends Drink {
7+
@Override
8+
String getInstantPackage() {
9+
return "速溶橙汁粉";
10+
}
11+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package com.anly.designpattern.simplefactory;
2+
3+
/**
4+
* Created by mingjun on 2016/11/14.
5+
*/
6+
public class PlumJuice extends Drink {
7+
@Override
8+
String getInstantPackage() {
9+
return "速溶酸梅粉";
10+
}
11+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package com.anly.designpattern.simplefactory;
2+
3+
/**
4+
* Created by mingjun on 16/11/10.
5+
*/
6+
public class XiaoGuang {
7+
8+
public static void main(String[] args) {
9+
10+
Drink drink = Cousins.create("可乐");
11+
drink.make();
12+
}
13+
}

0 commit comments

Comments
 (0)