软件设计四

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

 

实验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 @ 2024-11-06 12:48  连师傅只会helloword  阅读(7)  评论(0)    收藏  举报