11package com .anxpp .designpattern .abstractfactory ;
2+
23//抽象工厂模式
34public class AbstractFactory {
4- public static void main (String args []){
5- IFactory bigfactory = new BigFactory ();
6- IFactory smallfactory = new BigFactory ();
7- bigfactory .producePhone ().run ();
8- bigfactory .produceHeadset ().play ();
9- smallfactory .producePhone ().run ();
10- smallfactory .produceHeadset ().play ();
11- }
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+ }
1213}
14+
1315//抽象产品*2
14- interface Headset {
15- void play ();
16+ interface Headset {
17+ void play ();
1618}
19+
1720//抽象产品
18- interface MeizuPhone {
19- void run ();
21+ interface MeizuPhone {
22+ void run ();
2023}
24+
2125//具体产品*2*2
22- class PRO5 implements MeizuPhone {
23- @ Override
24- public void run () {
25- System .out .println ("我是一台PRO5" );
26- }
26+ class PRO5 implements MeizuPhone {
27+ @ Override
28+ public void run () {
29+ System .out .println ("我是一台PRO5" );
30+ }
2731}
28- class MX5 implements MeizuPhone {
29- @ Override
30- public void run () {
31- System .out .println ("我是一台MX5" );
32- }
32+
33+ class MX5 implements MeizuPhone {
34+ @ Override
35+ public void run () {
36+ System .out .println ("我是一台MX5" );
37+ }
3338}
34- class EP21 implements Headset {
35- @ Override
36- public void play () {
37- System .out .println ("我是一副EP21" );
38- }
39+
40+ class EP21 implements Headset {
41+ @ Override
42+ public void play () {
43+ System .out .println ("我是一副EP21" );
44+ }
3945}
40- class EP30 implements Headset {
41- @ Override
42- public void play () {
43- System .out .println ("我是一台EP30" );
44- }
46+
47+ class EP30 implements Headset {
48+ @ Override
49+ public void play () {
50+ System .out .println ("我是一台EP30" );
51+ }
4552}
53+
4654//抽象工厂
47- interface IFactory {
48- MeizuPhone producePhone ();
49- Headset produceHeadset ();
55+ interface IFactory {
56+ MeizuPhone producePhone ();
57+
58+ Headset produceHeadset ();
5059}
60+
5161//具体工厂*2
52- class BigFactory implements IFactory {
53- @ Override
54- public MeizuPhone producePhone () {
55- return new PRO5 ();
56- }
57- @ Override
58- public Headset produceHeadset () {
59- return new EP30 ();
60- }
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+ }
6172}
73+
6274//具体工厂*2
63- class SmallFactory implements IFactory {
64- @ Override
65- public MeizuPhone producePhone () {
66- return new MX5 ();
67- }
68- @ Override
69- public Headset produceHeadset () {
70- return new EP21 ();
71- }
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+ }
7285}
0 commit comments