2024/10/27
软件设计实验四:
[实验任务一]:人与肤色 使用抽象工厂模式,完成下述产品等级结构: 实验要求: 1. 画出对应的类图; 2. 提交源代码; public interface Human { //肤色 public void getColor(); //性别 public void getSex(); } public abstract class AbstractBlackHuman implements Human{ @java.lang.Override public void getColor() { System.out.println("这位的肤色为黑色"); } } public abstract class AbstractWhiteHuman implements Human{ @java.lang.Override public void getColor() { System.out.println("这位的肤色为白色"); } } public abstract class AbstractYellowHuman implements Human{ @java.lang.Override public void getColor() { System.out.println("这位的肤色为黄色"); } } public class FemaleBlackHuman extends AbstractBlackHuman { @java.lang.Override public void getSex() { System.out.println("这是一位黑人女性"); } } public class MaleBlackHuman extends AbstractBlackHuman{ @java.lang.Override public void getSex() { System.out.println("这是一位黑人男性"); } } public class FemaleWhiteHuman extends AbstractWhiteHuman { @java.lang.Override public void getSex() { System.out.println("这是一位白人女性"); } } public class MaleWhiteHuman extends AbstractWhiteHuman{ @java.lang.Override public void getSex() { System.out.println("这是一位白人男性"); } } public class FemaleYellowHuman extends AbstractYellowHuman { @java.lang.Override public void getSex() { System.out.println("这是一位黄人女性"); } } public class MaleYellowHuman extends AbstractYellowHuman{ @java.lang.Override public void getSex() { System.out.println("这是一位黄人男性"); } } public interface HumanFactory { //制造一个黄人 public Human createYellowHuman(); //制造一个白人 public Human createWhiteHuman(); //制造一个黑人 public Human createBlackHuman(); } public class FemaleFactory implements HumanFactory{ @java.lang.Override public Human createYellowHuman() { return new FemaleYellowHuman(); } @java.lang.Override public Human createWhiteHuman() { return new FemaleWhiteHuman(); } @java.lang.Override public Human createBlackHuman() { return new FemaleBlackHuman(); } } public class MaleFactory implements HumanFactory{ @java.lang.Override public Human createYellowHuman() { return new MaleYellowHuman(); } @java.lang.Override public Human createWhiteHuman() { return new MaleWhiteHuman(); } @java.lang.Override public Human createBlackHuman() { return new MaleBlackHuman(); } } public class Main { public static void main(String[] args) { HumanFactory male=new MaleFactory(); HumanFactory female=new FemaleFactory(); Human maleYellowHuman=male.createYellowHuman(); Human femaleYellowHuman=female.createYellowHuman(); Human mwhite=male.createWhiteHuman(); Human fwhite=female.createWhiteHuman(); Human mblack=male.createBlackHuman(); Human fblack=female.createBlackHuman(); maleYellowHuman.getSex(); femaleYellowHuman.getSex(); mwhite.getSex(); fwhite.getSex(); mblack.getSex(); fblack.getSex(); } }