4.抽象工厂模式

[实验任务一]:人与肤色

使用抽象工厂模式,完成下述产品等级结构:
image

类图

image

代码

Java

BlackFactory.java

package test04;

public class BlackFactory implements Race{
    @Override
    public Women produceWoMan() {
        return new BlackWoMen();
    }

    @Override
    public Man produceMan() {
        return new BlackMan();
    }
}

BlackMan.java

package test04;

public class BlackMan implements Man{

    @Override
    public void sexIs() {
        System.out.println("黑色男人");
    }
}

BlackWoMen.java

package test04;

public class BlackWoMen implements Women{
    @Override
    public void sexIs() {
        System.out.println("黑色女人");
    }
}

Client.java

package test04;

public class Client {

    public static void main(String[] args) {
        Race race = new YellowFactory();
        Man man;
        Women women;

        man = race.produceMan();
        man.sexIs();

        women = race.produceWoMan();
        women.sexIs();

    }

}

Man.java

package test04;

public interface Man{

    public void sexIs();
}

Race.java

package test04;

public interface Race {

    public Women produceWoMan();
    public Man produceMan();

}

WhiteFactory.java

package test04;

public class WhiteFactory implements Race{
    @Override
    public Women produceWoMan() {
        return new WhiteWoMen();
    }

    @Override
    public Man produceMan() {
        return new WhiteMan();
    }
}

WhiteMan.java

package test04;

public class WhiteMan implements Man{

    @Override
    public void sexIs() {
        System.out.println("白色男人");
    }
}

WhiteWoMen.java

package test04;

public class WhiteWoMen implements Women{
    @Override
    public void sexIs() {
        System.out.println("白色女人");
    }
}

Women.java

package test04;

public interface Women{

    public void sexIs();

}

YellowFactory.java

package test04;

public class YellowFactory implements Race{

    @Override
    public Women produceWoMan() {
        return new YellowWoMen();
    }

    @Override
    public Man produceMan() {
        return new YellowMan();
    }
}

YellowMan.java

package test04;

public class YellowMan implements Man{

    @Override
    public void sexIs() {
        System.out.println("黄色男人");
    }
}

YellowWoMen.java

package test04;

public class YellowWoMen implements Women{
    @Override
    public void sexIs() {
        System.out.println("黄色女人");
    }
}
posted @ 2022-12-03 12:03  又一岁荣枯  阅读(17)  评论(0编辑  收藏  举报