代码成就万世基积沙镇海,梦想永在凌云意意气|

又一岁荣枯

园龄:3年4个月粉丝:11关注:6

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("黄色女人");
    }
}

本文作者:又一岁荣枯

本文链接:https://www.cnblogs.com/java-six/p/16947304.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   又一岁荣枯  阅读(19)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起