1 package com.a004;
2
3 public class Black implements Color{
4 @Override
5 public Man produceMan() {
6 return new BlackMan();
7 }
8
9 @Override
10 public Woman produceWoman() {
11 return new BlackWoman();
12 }
13 }
BlackMan.java
1 package com.a004;
2
3 public class BlackMan implements Man{
4 @Override
5 public void play(){
6 System.out.println("我是黑種男人!");
7 }
8 }
BlackWoman.java
1 package com.a004;
2
3 public class BlackWoman implements Woman {
4
5 @Override
6 public void play() {
7 System.out.println("我是黑種女人!");
8 }
9 }
Color.java
1 package com.a004;
2
3 public interface Color {
4 public Man produceMan();
5 public Woman produceWoman();
6 }
Yellow.java
1 package com.a004;
2
3 public class Yellow implements Color{
4 @Override
5 public Man produceMan() {
6 return new YellowMan();
7 }
8
9 @Override
10 public Woman produceWoman() {
11 return new YellowWoman();
12 }
13 }
White.java
1 package com.a004;
2
3 public class White implements Color {
4 @Override
5 public Man produceMan() {
6 return new WhiteMan();
7 }
8
9 @Override
10 public Woman produceWoman() {
11 return new WhiteWoman();
12 }
13 }
Man.java
1 package com.a004;
2
3 public interface Man {
4 public void play();
5 }
WhiteMan.java
1 package com.a004;
2
3 public class WhiteMan implements Man {
4 @Override
5 public void play() {
6 System.out.println("我是白種男人!");
7 }
8 }
YellowMan.java
1 package com.a004;
2
3 public class YellowMan implements Man{
4 @Override
5 public void play() {
6 System.out.println("我是黃種男人!");
7 }
8 }
Woman.java
1 package com.a004;
2
3 public interface Woman {
4
5 public void play() ;
6 }
WhiteWoman.java
1 package com.a004;
2
3 public class WhiteWoman implements Woman {
4 @Override
5 public void play() {
6 System.out.println("我是白種女人!");
7 }
8 }
YellowWoman.java
1 package com.a004;
2
3 public class YellowWoman implements Woman {
4 @Override
5 public void play() {
6 System.out.println("我是黃種女人!");
7 }
8 }