qwb0614

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

实验4:抽象工厂模式

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

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

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

 
   

 


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

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

 

实验要求:

1.  画出对应的类图;

 

 

2.  提交源代码;

3.注意编程规范。

package ruanjiansheji.shiyan4.man;

public class BlackMan implements Man{
    @Override
    public void makeMan() {
        System.out.println("我是黑种男人!");
    }
}
package ruanjiansheji.shiyan4.man;

public interface Man {
    public void makeMan();
}
package ruanjiansheji.shiyan4.man;

public class WhiteMan implements Man{
    @Override
    public void makeMan() {
        System.out.println("我是白种男人!");
    }
}
package ruanjiansheji.shiyan4.man;

public class YellowMan implements Man{
    @Override
    public void makeMan() {
        System.out.println("我是黄种男人!");
    }
}
package ruanjiansheji.shiyan4.utils;

import ruanjiansheji.shiyan4.woman.Woman;
import ruanjiansheji.shiyan4.man.Man;

public interface AbstractFactory {
    public Man produceMan();
    public Woman produceWoman();
}
package ruanjiansheji.shiyan4.utils;

import ruanjiansheji.shiyan4.woman.BlackWoman;
import ruanjiansheji.shiyan4.man.BlackMan;
import ruanjiansheji.shiyan4.man.Man;
import ruanjiansheji.shiyan4.woman.Woman;

public class BlackFactory implements AbstractFactory{
    @Override
    public Man produceMan() {
        return new BlackMan();
    }
    @Override
    public Woman produceWoman() {
        return new BlackWoman();
    }
}
package ruanjiansheji.shiyan4.utils;

import ruanjiansheji.shiyan4.woman.WhiteWoman;
import ruanjiansheji.shiyan4.man.Man;
import ruanjiansheji.shiyan4.man.WhiteMan;
import ruanjiansheji.shiyan4.woman.Woman;

public class WhiteFactory implements AbstractFactory{
    @Override
    public Man produceMan() {
        return new WhiteMan();
    }
    @Override
    public Woman produceWoman() {
        return new WhiteWoman();
    }
}
package ruanjiansheji.shiyan4.utils;

import ruanjiansheji.shiyan4.man.YellowMan;
import ruanjiansheji.shiyan4.woman.YellowWoman;
import ruanjiansheji.shiyan4.man.Man;
import ruanjiansheji.shiyan4.woman.Woman;

public class YellowFactory implements AbstractFactory{
    @Override
    public Man produceMan() {
        return new YellowMan();
    }
    @Override
    public Woman produceWoman() {
        return new YellowWoman();
    }
}
package ruanjiansheji.shiyan4.woman;

public class BlackWoman implements Woman{
    @Override
    public void makeWoman() {
        System.out.println("我是黑种女人!");
    }
}
package ruanjiansheji.shiyan4.woman;

public class WhiteWoman implements Woman{
    @Override
    public void makeWoman() {
        System.out.println("我是白种女人!");
    }
}
package ruanjiansheji.shiyan4.woman;

public interface Woman {
    public void makeWoman();
}

package ruanjiansheji.shiyan4.woman;

public class YellowWoman implements Woman{
    @Override
    public void makeWoman() {
        System.out.println("我是黄种女人!");
    }
}
package ruanjiansheji.shiyan4;

import ruanjiansheji.shiyan4.man.Man;
import ruanjiansheji.shiyan4.utils.AbstractFactory;
import ruanjiansheji.shiyan4.utils.YellowFactory;
import ruanjiansheji.shiyan4.woman.Woman;

public class Client {
    public static void main(String[] args) {
        AbstractFactory factory=new YellowFactory();
        Man man = factory.produceMan();
        Woman woman = factory.produceWoman();
        man.makeMan();
        woman.makeWoman();
    }
}

 

posted on 2023-11-13 08:07  嘎嘎鸭1  阅读(14)  评论(0)    收藏  举报