24.12.03

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

实验要求:

  1. 画出对应的类图;
    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.注意编程规范

posted @ 2024-12-03 19:25  起名字真难_qmz  阅读(9)  评论(0)    收藏  举报