当前位置: 首页 > news >正文

UML类图综合实验三补档

1.使用简单工厂模式模拟女娲(Nvwa)造人(Person),如果传入参数“M”,则返回一个Man对象,如果传入参数“W”,则返回一个Woman对象,用Java语言实现该场景。现需要增加一个新的Robot类,如果传入参数“R”,则返回一个Robot对象,对代码进行修改并注意“女娲”的变化。

2.现需要设计一个程序来读取多种不同类型的图片格式,针对每一种图片格式都设计一个图片读取器(ImageReader),如GIF图片读取器(GifReader)用于读取GIF格式的图片、JPG图片读取器(JpgReader)用于读取JPG格式的图片。图片读取器对象通过图片读取器工厂ImageReaderFactory来创建,ImageReaderFactory是一个抽象类,用于定义创建图片读取器的工厂方法,其子类GifReaderFactory和JpgReaderFactory用于创建具体的图片读取器对象。使用工厂方法模式实现该程序的设计。

1. 简单工厂模式。参考类图如下所示:

分析:在本实例中,Nvwa类充当工厂类,其中定义了工厂方法makePerson(),Person类充当抽象产品类,Man、Woman和Robot充当具体产品类。工厂方法makePerson()的代码如下所示:

public static Person makePerson(char arg)

{

    Person person = null;

    switch(arg)

    {

        case 'M':

        person = new Man();  break;

        case 'W':

        person = new Woman();  break;

        case 'R':

        person = new Robot();  break;

    }

    return person;

}

如果需要增加一个新的具体产品,则必须修改makePerson()方法中的判断语句,需增加一个新的case语句,违背了开闭原则。

2. 工厂方法模式。参考类图如下所示:

分析:在本实例中,ImageReaderFactory充当抽象工厂,GifReaderFactory和JpgReaderFactory充当具体工厂,ImageReader充当抽象产品,GifReader和JpgReader充当具体产品。

相关文章:

  • 做网站建设的销售薪水深圳网络营销策划有限公司
  • 2022年互联网公司排名优化二十条
  • 企业内部网站如何建设恶意点击竞价时用的什么软件
  • 问鼎电子娱乐下载官方网站品牌推广的步骤和技巧
  • 绵阳网页制作公司国际站seo优化是什么意思
  • 如何在网站开发国外大客户seo软件安卓版
  • 类初始化、类加载、垃圾回收---JVM
  • Heap_dijkstra
  • SnakeMake搭建pipeline 1
  • 隔行换色总结
  • MCP vs LangChain:标准化协议与开发框架的优劣对比
  • 1. openharmony 南向开发之工具安装
  • Apple ID授权登入
  • C++中数组的概念
  • Docker Swarm集群搭建与管理全攻略
  • 7.3 在通知中显示图片或视频(UNNotificationAttachment)
  • LPDDR4内存颗粒命名规则全解析:三星、镁光、海力士、南亚、长鑫等厂商型号解码与选型指南
  • 搜广推校招面经七十
  • 蓝桥王国(Dijkstra优先队列)
  • 实战 | 基于 SpringBoot + MyBatis-Plus + UniApp 构建无人棋牌室管理系统:架构解析与性能优化
  • 【AI工具】FastGPT:开启高效智能问答新征程
  • 每日一题(小白)暴力娱乐篇19
  • Unity遮挡剔除与视锥剔除混合策略技术详解
  • 遍历算法及其应用详解
  • 【MQTT】
  • RVOS-1.环境搭建与系统引导