1- package com .anxpp .designpattern .abstractfactory ;
2-
3- //抽象工厂模式
4- public class AbstractFactory {
5- public static void main (String args []) {
6- IFactory bigfactory = new BigFactory ();
7- IFactory smallfactory = new BigFactory ();
8- bigfactory .producePhone ().run ();
9- bigfactory .produceHeadset ().play ();
10- smallfactory .producePhone ().run ();
11- smallfactory .produceHeadset ().play ();
12- }
13- }
14-
15- //抽象产品*2
16- interface Headset {
17- void play ();
18- }
19-
20- //抽象产品
21- interface MeizuPhone {
22- void run ();
23- }
24-
25- //具体产品*2*2
26- class PRO5 implements MeizuPhone {
27- @ Override
28- public void run () {
29- System .out .println ("我是一台PRO5" );
30- }
31- }
32-
33- class MX5 implements MeizuPhone {
34- @ Override
35- public void run () {
36- System .out .println ("我是一台MX5" );
37- }
38- }
39-
40- class EP21 implements Headset {
41- @ Override
42- public void play () {
43- System .out .println ("我是一副EP21" );
44- }
45- }
46-
47- class EP30 implements Headset {
48- @ Override
49- public void play () {
50- System .out .println ("我是一台EP30" );
51- }
52- }
53-
54- //抽象工厂
55- interface IFactory {
56- MeizuPhone producePhone ();
57-
58- Headset produceHeadset ();
59- }
60-
61- //具体工厂*2
62- class BigFactory implements IFactory {
63- @ Override
64- public MeizuPhone producePhone () {
65- return new PRO5 ();
66- }
67-
68- @ Override
69- public Headset produceHeadset () {
70- return new EP30 ();
71- }
72- }
73-
74- //具体工厂*2
75- class SmallFactory implements IFactory {
76- @ Override
77- public MeizuPhone producePhone () {
78- return new MX5 ();
79- }
80-
81- @ Override
82- public Headset produceHeadset () {
83- return new EP21 ();
84- }
1+ package com .anxpp .designpattern .abstractfactory ;
2+
3+ //抽象工厂模式
4+ public class AbstractFactory {
5+ public static void main (String args []) {
6+ IFactory bigfactory = new BigFactory ();
7+ IFactory smallfactory = new BigFactory ();
8+ bigfactory .producePhone ().run ();
9+ bigfactory .produceHeadset ().play ();
10+ smallfactory .producePhone ().run ();
11+ smallfactory .produceHeadset ().play ();
12+ }
13+ }
14+
15+ //抽象产品*2
16+ interface Headset {
17+ void play ();
18+ }
19+
20+ //抽象产品
21+ interface MeizuPhone {
22+ void run ();
23+ }
24+
25+ //具体产品*2*2
26+ class PRO5 implements MeizuPhone {
27+ @ Override
28+ public void run () {
29+ System .out .println ("我是一台PRO5" );
30+ }
31+ }
32+
33+ class MX5 implements MeizuPhone {
34+ @ Override
35+ public void run () {
36+ System .out .println ("我是一台MX5" );
37+ }
38+ }
39+
40+ class EP21 implements Headset {
41+ @ Override
42+ public void play () {
43+ System .out .println ("我是一副EP21" );
44+ }
45+ }
46+
47+ class EP30 implements Headset {
48+ @ Override
49+ public void play () {
50+ System .out .println ("我是一台EP30" );
51+ }
52+ }
53+
54+ //抽象工厂
55+ interface IFactory {
56+ MeizuPhone producePhone ();
57+
58+ Headset produceHeadset ();
59+ }
60+
61+ //具体工厂*2
62+ class BigFactory implements IFactory {
63+ @ Override
64+ public MeizuPhone producePhone () {
65+ return new PRO5 ();
66+ }
67+
68+ @ Override
69+ public Headset produceHeadset () {
70+ return new EP30 ();
71+ }
72+ }
73+
74+ //具体工厂*2
75+ class SmallFactory implements IFactory {
76+ @ Override
77+ public MeizuPhone producePhone () {
78+ return new MX5 ();
79+ }
80+
81+ @ Override
82+ public Headset produceHeadset () {
83+ return new EP21 ();
84+ }
8585}
0 commit comments