24.12.03
[实验任务一]:人与肤色
使用抽象工厂模式,完成下述产品等级结构:

实验要求:
- 画出对应的类图;
![image]()
2.提交源代码;
package com.exam;
// 抽象产品接口
interface Person {
String getDescription();
}
// 具体产品类
class YellowMale implements Person {
@Override
public String getDescription() {
return "黄种人男性";
}
}
class YellowFemale implements Person {
@Override
public String getDescription() {
return "黄种人女性";
}
}
class BlackMale implements Person {
@Override
public String getDescription() {
return "黑种人男性";
}
}
class BlackFemale implements Person {
@Override
public String getDescription() {
return "黑种人女性";
}
}
class WhiteMale implements Person {
@Override
public String getDescription() {
return "白种人男性";
}
}
class WhiteFemale implements Person {
@Override
public String getDescription() {
return "白种人女性";
}
}
// 抽象工厂接口
interface PersonFactory {
Person createMale();
Person createFemale();
}
// 具体工厂类
class YellowPersonFactory implements PersonFactory {
@Override
public Person createMale() {
return new YellowMale();
}
@Override
public Person createFemale() {
return new YellowFemale();
}
}
class BlackPersonFactory implements PersonFactory {
@Override
public Person createMale() {
return new BlackMale();
}
@Override
public Person createFemale() {
return new BlackFemale();
}
}
class WhitePersonFactory implements PersonFactory {
@Override
public Person createMale() {
return new WhiteMale();
}
@Override
public Person createFemale() {
return new WhiteFemale();
}
}
public class Client {
public static void main(String[] args) {
System.out.println("黄种人:");
clientCode(new YellowPersonFactory());
System.out.println("\n黑种人:");
clientCode(new BlackPersonFactory());
System.out.println("\n白种人:");
clientCode(new WhitePersonFactory());
}
private static void clientCode(PersonFactory factory) {
Person male = factory.createMale();
Person female = factory.createFemale();
System.out.println(male.getDescription());
System.out.println(female.getDescription());
}
}
3.注意编程规范


浙公网安备 33010602011771号