首页 > 其他分享 >番外-软件设计(1)

番外-软件设计(1)

时间:2023-10-30 15:25:33浏览次数:28  
标签:play package 软件设计 Abstract factory public class 番外

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

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

实验要求:

1. 画出对应的类图;

2. 提交源代码;

package Abstract_factory;

public class BlackFactory implements MWFactory

{

    public Man produceMan()

    {

        return new BlackSkinMan();

    }

 

    public Woman produceWomen()

    {

        return new BlackSkinWomen();

    }

}

package Abstract_factory;

 

public class BlackSkinMan implements Man

{

    public void play()

    {

        System.out.println("我是黑种男人!");

    }

}

package Abstract_factory;

 

public class BlackSkinWomen implements Woman

{

    public void play()

    {

        System.out.println("我是黑种女人!");

    }

}

package Abstract_factory;

 

public class Client

{

    public static void main(String args[])

    {

        try

        {

            MWFactory factory;

            Man m;

            Woman w;

            factory=(MWFactory)XMLUtil.getBean();

            m=factory.produceMan();

            m.play();

            w=factory.produceWomen();

            w.play();

        }

        catch(Exception e)

        {

            System.out.println(e.getMessage());

        }

    }

}

//run此文件

package Abstract_factory;

 

public interface Man

{

    public void play();

}

package Abstract_factory;

 

public interface MWFactory

{

    public Man produceMan();

    public Woman produceWomen();

}

package Abstract_factory;

 

public class WhiteFactory implements MWFactory

{

    public Man produceMan()

    {

        return new WhiteSkinMan();

    }

 

    public Woman produceWomen()

    {

        return new WhiteSkinWomen();

    }

}

package Abstract_factory;

 

public class WhiteSkinMan implements Man{

    public void play()

    {

        System.out.println("我是白种男人!");

    }

}

package Abstract_factory;

 

public class WhiteSkinWomen implements Woman{

    public void play()

    {

        System.out.println("我是白种女人!");

    }

}

package Abstract_factory;

 

public interface Woman

{

    public void play();

}

package Abstract_factory;

 

import javax.xml.parsers.*;

import org.w3c.dom.*;

import org.xml.sax.SAXException;

import java.io.*;

public class XMLUtil

{

    //该方法用于从XML配置文件中提取具体类类名,并返回一个实例对象

    public static Object getBean()

    {

        try

        {

            //创建文档对象

            DocumentBuilderFactory dFactory = DocumentBuilderFactory.newInstance();

            DocumentBuilder builder = dFactory.newDocumentBuilder();

            Document doc;

            doc = builder.parse(new File("Cainiao.iml"));

 

            //获取包含类名的文本节点

            NodeList nl = doc.getElementsByTagName("className");

            Node classNode=nl.item(0).getFirstChild();

            String cName=classNode.getNodeValue();

 

            //通过类名生成实例对象并将其返回

            Class c=Class.forName(cName);

            Object obj=c.newInstance();

            return obj;

        }

        catch(Exception e)

        {

            e.printStackTrace();

            return null;

        }

    }

}

package Abstract_factory;

 

public class YellowFactory {

 

        public Man produceMan()

        {

            return new YellowSkinMan();

        }

 

        public Woman produceWomen()

        {

            return new YellowSkinWomen();

        }

}

package Abstract_factory;

 

public class YellowSkinMan implements Man{

    public void play()

    {

        System.out.println("我是黄种男人!");

    }

}

package Abstract_factory;

 

public class YellowSkinWomen implements Woman{

    public void play()

    {

        System.out.println("我是黄种女人!");

    }

}

3.注意编程规范。

标签:play,package,软件设计,Abstract,factory,public,class,番外
From: https://www.cnblogs.com/zjsdbk/p/17797919.html

相关文章

  • 番外-软件设计(2)
    [实验任务一]:计算机组装使用建造者模式,完成下述任务:计算机组装工厂可以将CPU、内存、硬盘、主机等硬件设备组装在一起构成计算机,计算机的类型可以是笔记本,也可以是台式机。实验要求:1. 画出对应的类图;2. 提交源代码;packageBuilder;publicclassComputer{    privat......
  • 软件设计师考试大纲分析
    大纲以及分值想要高效的学习,首先要先分析考试大纲。下面是系统架构师新大纲上午题软件设计师分值计算机组成原理6分操作系统基础6分数据库基础6分网络与信息安全基础5分软件工程30分知识产权2分计算机英语5分项目管理2分程序设计语言基础知识5分数据结构与算法10分下午题更新计划后......
  • 软件设计之抽象工厂模式
    类图代码packagetest;importjava.util.Scanner;publicclasstest3{publicstaticvoidmain(String[]args){Factorysfactory=null;ProductAproductA=null;ProductBproductB=null;System.out.println("请输入你想要的......
  • 软件设计师中级复习
     U1-U3用户做什么java_UML:继承/泛化、实现、依赖、关联、聚合、组合的联系与区别(2016-07-12)-scevecn-博客园(cnblogs.com)  包含:聚合:只是聚会而已,还是会分开的组合:实现:接口包含:先把右边的执行,才能执行左边的泛化:之类在父类上重写方法,或者是延伸的对应实......
  • 软件设计之C/S结构连接数据库实现登录功能
    界面展示具体代码//DBUtil.javapackageorg.example;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.SQLException;publicclassDBUtil{publicstaticConnectiongetConnection()throwsClassNotFoundException,SQLException......
  • 《最新出炉》系列初窥篇-Python+Playwright自动化测试-21-处理鼠标拖拽-番外篇
    1.简介前边宏哥拖拽有提到那个反爬虫机制,加了各种参数,以及加载js脚本文件还是有问题,偶尔宏哥好像发现了解决问题的办法,看到了黎明的曙光,宏哥就说试一下看看行不行,万一实现了。结果宏哥试了结果真的OK啊,但是宏哥第一次运行可以,后边就不行了,然后将编辑器关闭重启,再次运行又可以,宏哥......
  • 软件设计师备考--1
    面向对象考点1.对象1.对象的概念:对象是由对象名,属性,方法所构成的考点2.封装2.封装:将某些信息隐藏,不允许外部程序直接访问。就是把对象里的内容(属性和方法)结合为一个独立的整体,不让对象里的数据被随意访问,对数据的访问只能通过已定义的接口。常用封装修饰符有:public、protecte......
  • 轻松掌握组件启动之MongoDB(番外篇):高可用复制集架构环境搭建-mtools
    引言在前两章节中,我们详细讲解了如何手动配置启动MongoDB。然而,现在有许多不同的工具可以帮助我们更方便地启动和创建MongoDB数据库。因此,今天我将介绍一个名为mtools的开源项目,它可以帮助我们更轻松地启动MongoDB。mtools介绍官方文档地址:mtoolsmtools是一个基于Python实现的......
  • 用Java实现计算器软件设计
    Java编写个人计算器软件一、所需要实现的功能1.该计算器需要实现加、减、乘、除、开平方功能。2.需要有一个运行的UI界面,可以和电脑自带的计算器相比较。该界面要有一个文本输入框,用来显示输入的表达式;若干个按钮,用来用来显示数字以及操作符;当点击按钮时,按钮上面对应的文本......
  • # yyds干货盘点 # 盘点一个Python自动化办公Excel数据填充实战案例(番外篇)
    大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Python自动化办公的问题,一起来看看吧。上一篇【论草莓如何成为冻干莓】大佬给出了两个方法,这一篇文章,一起来围观粉丝自己在实际运行过程中所遇到的问题。二、实现过程这里是【瑜亮老师】亲测代码是无误了,肯......