File tree Expand file tree Collapse file tree
src/com/anly/designpattern/simplefactory Expand file tree Collapse file tree Original file line number Diff line number Diff line change 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+ }
Original file line number Diff line number Diff line change 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+ }
Original file line number Diff line number Diff line change 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+ }
Original file line number Diff line number Diff line change 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+ }
Original file line number Diff line number Diff line change 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+ }
Original file line number Diff line number Diff line change 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+ }
You can’t perform that action at this time.
0 commit comments