qwb0614

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  187 随笔 :: 0 文章 :: 0 评论 :: 2048 阅读

实验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   嘎嘎鸭1  阅读(9)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示