软件设计四

软件设计                  石家庄铁道大学信息学院

 

实验4:抽象工厂模式

本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:

1、理解抽象工厂模式的动机,掌握该模式的结构;

2、能够利用抽象工厂模式解决实际问题。

 

 

 

 

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

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

 

 

实验要求:

1.  画出对应的类图;

 

 

2.  提交源代码;

AbstractFactory:

public interface AbstractFactory {
    public  Man produceMan();
    public Woman produceWoman();
}

 

BlackFactory:

public class BlackFactory implements AbstractFactory{
    public Man produceMan()
    {
        return new BlackMan();
    }
    public Woman produceWoman()
    {
        return new BlackWoman();
    }
}

 

WhiteFactory:

public class WhiteFactory implements AbstractFactory{
    public Man produceMan()
    {
        return new WhiteMan();
    }
    public Woman produceWoman()
    {
        return new WhiteWoman();
    }
}

 

YellowFactory:

public class YellowFactory implements AbstractFactory{
    public Man produceMan()
    {
        return new YellowMan();
    }
    public Woman produceWoman()
    {
        return new YellowWoman();
    }
}

 

BlackMan:

public class BlackMan implements Man{
    public void show()
    {
        System.out.println("黑皮肤的男性");
    }
}

 

BlackWoman:

public class BlackWoman implements Woman {
    public void show()
    {
        System.out.println("黑皮肤的女性");
    }
}


WhiteMan:

public class WhiteMan implements Man{
    public void show()
    {
        System.out.println("白皮肤的男性");
    }
}

 

WhiteWoman:

public class WhiteWoman implements Woman {
    public void show()
    {
        System.out.println("白皮肤的女性");
    }
}

 

YellowMan:

public class YellowMan implements Man{
    public void show()
    {
        System.out.println("黄皮肤的男性");
    }
}


YellowWoman:

public class YellowWoman implements Woman {
    public void show()
    {
        System.out.println("黄皮肤的女性");
    }
}


Man:

public interface Man {
    public void show();
}


Woman:

public interface Woman {
    public void show();
}

Main:

public class Main {
    public static void main(String[] args) {
        try
        {
            AbstractFactory fac;
            Man m;
            Woman w;
            fac=new YellowFactory();
            m=fac.produceMan();
            m.show();
            w=fac.produceWoman();
            w.show();
        }
        catch(Exception e)
        {
            System.out.println(e.getMessage());
        }
    }
}

 

运行截图:

 

 

posted @   连师傅只会helloword  阅读(2)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
历史上的今天:
2023-11-06 11.6总结
2023-11-06 11.4总结
2023-11-06 11.3总结
2023-11-06 11.2总结
点击右上角即可分享
微信分享提示