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();
    }
}

 

posted @ 2024-10-27 11:12  伐木工熊大  阅读(8)  评论(0)    收藏  举报