首页 > 其他分享 >设计模式实验四

设计模式实验四

时间:2023-10-30 09:55:48浏览次数:36  
标签:package db Person person 实验 createPerson 设计模式 public

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

 

实验4:抽象工厂模式

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

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

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

 

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

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

 

 

实验要求:

1. 画出对应的类图;

 

 

2. 提交源代码;

package db;

public class BlackPerson implements Person {
   @Override
   public String getGender() {
       return "Black person";
   }
}

 

package db;

public class BlackSkinFactory implements SkinFactory {
   @Override
   public Person createPerson() {
       return new BlackPerson();
   }
}

 

package db;

public class Main {
   public static void main(String[] args) {
       SkinFactory factory = new YellowSkinFactory(); // 使用黄色肤色工厂
       Person person = factory.createPerson(); // 创建黄色人种对象
       System.out.println(person.getGender()); // 输出:Yellow person

       factory = new BlackSkinFactory(); // 使用黑色肤色工厂
       person = factory.createPerson(); // 创建黑色人种对象
       System.out.println(person.getGender()); // 输出:Black person

       factory = new WhiteSkinFactory(); // 使用白色肤色工厂
       person = factory.createPerson(); // 创建白色人种对象
       System.out.println(person.getGender()); // 输出:White person
   }
}

 

package db;

public interface Person {
   String getGender();
}

 

package db;

public interface SkinFactory {
   Person createPerson();
}

 

package db;

public class WhitePerson implements Person {
   @Override
   public String getGender() {
       return "White person";
   }
}

 

package db;

public class WhiteSkinFactory implements SkinFactory {
   @Override
   public Person createPerson() {
       return new WhitePerson();
   }
}

 

package db;

public class YellowPerson implements Person {
   @Override
   public String getGender() {
       return "Yellow person";
   }
}

 

package db;

public class YellowSkinFactory implements SkinFactory {
   @Override
   public Person createPerson() {
       return new YellowPerson();
   }
}

 

运行截图:

 

 

3.注意编程规范。

标签:package,db,Person,person,实验,createPerson,设计模式,public
From: https://www.cnblogs.com/azwz/p/17797110.html

相关文章

  • C++实验心得
    C++类文件写通讯录系统生成项目,创建类文件...调出工作区,manager属性类文件运用string型变量的找不到此数据类型问题,需要在对应.h文件定义上命名空间并引用<string>头文件类文件引用主函数全局变量main.cpp externinta; //导出 ...Class_one.cpp inta; //去ex......
  • 重学面向对象,体会设计模式
    先上图(学长今晚讲得好激情,就像哈佛大学cs50的老师~~~~)图一让你明白,在Java帝国,你有多么渺小 回忆一下学长讲课的思路~Driver这个类里面封装了很多各种各样的方法,包括接学生回家,包括开车的时速,里面包括了,司机本身的一个职责,以及车的一个功能,但问一个问题,如果今天司机的大巴......
  • 实验1-实验任务6
    #include<stdio.h>#include<math.h>intmain(){ doublex,ans; while(scanf_s("%lf",&x)!=EOF) { ans=pow(x,365); printf("%.2f的365次方:%.2f\n",x,ans); printf("\n"); } return0;}  ......
  • 实验1-实验任务5
    1#include<stdio.h>2intmain()3{4intyear;5year=(float)(static_cast<double>(1000000000/365/24/60)/60)+0.5;6printf("10亿秒约等于%d年\n",year);7return0;8} ......
  • 实验1-实验任务3
    1#include<stdio.h>2intmain()3{4charans1,ans2;//用于保存用户输入的答案5printf("每次课前认真预习、课后及时复习了没?(输入y或Y表示有,输入n或N表示没有):");6ans1=getchar();//从键盘输入一个字符,赋值给ans17getchar();......
  • 设计模式—创建型模式之原型模式
    设计模式—创建型模式之原型模式原型模式(PrototypePattern)用于创建重复的对象,同时又能保证性能。本体给外部提供一个克隆体进行使用。比如我们做一个SjdwzMybatis,用来操作数据库,从数据库里面查出很多记录,其中很多记录改变很少。每次查数据库,把所有数据都封装一个对象,然后返回......
  • 如何将设计模式责任链模式运用到工作当中
    (文章目录)......
  • 第四十章 触摸屏实验
    原文:http://www.openedv.com/thread-345225-1-1.html触摸屏是在显示屏的基础上,在屏幕或屏幕上方分布一层与屏幕大小相近的传感器形成的组合器件。触摸和显示功能由软件控制,可以独立也可以组合实现,用户可以通过侦测传感器的触点再配合相应的软件实现触摸效果。目前最常用的触摸屏......
  • Proxy Facade 设计模式运行时的工作原理介绍
    ProxyFacade设计模式是一个强大的工具,它可以帮助我们创建一个简单的代理外观类,以便根据方法和属性的配置来访问系统的各种功能。在这篇文章中,我们将深入探讨ProxyFacade模式的运行时工作原理,并提供一些实际示例来帮助您更好地理解。什么是ProxyFacade设计模式?ProxyFaca......
  • Commands and Queries 设计模式详解
    在Angular应用开发领域,CommandsandQueries设计模式是一个关键的概念,它有助于有效地管理应用程序的状态和与后端的交互。本文将深入探讨这一设计模式的核心要点,并通过实际示例来加以说明。基本概念命令(Commands)命令代表了一项能够改变系统状态的操作,通常通过向后端发起RES......