2023/10/9 每日总结

实验4:抽象工厂模式

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

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

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

 

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

类图

源代码

package org.test4;

public abstract class AbstractHumanFactory {
    public abstract Man produceMan();

    public abstract Woman produceWomen();

}
package org.test4;

public class BlackFactory extends AbstractHumanFactory{


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

    @Override
    public Woman produceWomen() {
        return new BlackWoman();
    }
}
package org.test4;

public class BlackMan extends Man{
    @Override
    public void show() {
        System.out.println("黑色男人");
    }
}
package org.test4;

public class BlackWoman extends Woman{
    @Override
    public void show() {
        System.out.println("黑色女人");
    }

}
package org.test4;

public class Client {
    public static void main(String[] args) {
        try
        {
           AbstractHumanFactory factory=new BlackFactory();
            Man man = factory.produceMan();
            Woman woman = factory.produceWomen();
            man.show();
            woman.show();
        }
        catch(Exception e)
        {
            System.out.println(e.getMessage());
        }
    }
}
package org.test4;

public abstract class Man {
    public abstract void show();
}
package org.test4;

public class WhiteFactory extends AbstractHumanFactory{
    @Override
    public Man produceMan() {
        return new WhiteMan();
    }

    @Override
    public Woman produceWomen() {
        return new WhiteWoman();
    }
}
package org.test4;

public class WhiteMan extends Man{

    @Override
    public void show() {
        System.out.println("白色男人");
    }
}
package org.test4;

public class WhiteWoman extends Woman{
    @Override
    public void show() {
        System.out.println("白色女人");
    }
}
package org.test4;

public abstract class Woman {
    public abstract void show();
}
package org.test4;

public class YellowFactory extends AbstractHumanFactory{
    @Override
    public Man produceMan() {
        return new YellowMan();
    }

    @Override
    public Woman produceWomen() {
        return new YellowWoman();
    }
}
package org.test4;

public class YellowMan extends Man{
    @Override
    public void show() {
        System.out.println("黄色男人");
    }
}
package org.test4;

public class YellowWoman extends Woman{
    @Override
    public void show() {
        System.out.println("黄色女人");
    }
}

  

 

posted @ 2023-10-09 20:19  樱花开到我身边  阅读(7)  评论(0)    收藏  举报