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

番外-软件设计(2)

时间:2023-10-30 15:24:46浏览次数:34  
标签:String 软件设计 cb 番外 System public computer void

[实验任务一]:计算机组装

使用建造者模式,完成下述任务:计算机组装工厂可以将CPU、内存、硬盘、主机等硬件设备组装在一起构成计算机,计算机的类型可以是笔记本,也可以是台式机。

实验要求:

1. 画出对应的类图;

2. 提交源代码;

package Builder;

public class Computer {

    private String CPU;

    private String RAM;

    private String Hard;

    private String Host;

    public String getCPU() {

        return CPU;

    }

    public void setCPU(String cPU) {

        CPU = cPU;

    }

    public String getRAM() {

        return RAM;

    }

    public void setRAM(String rAM) {

        RAM = rAM;

    }

    public String getHard() {

        return Hard;

    }

    public void setHard(String hard) {

        Hard = hard;

    }

    public String getHost() {

        return Host;

    }

    public void setHost(String host) {

        Host = host;

    }

}

package Builder;

 

public abstract class ComputerBuilder {

    protected Computer computer=new Computer();

    public abstract void buildCPU();

    public abstract void buildRAM();

    public abstract void buildHard();

    public abstract void buildHost();

    public Computer getComputer()

    {

        return computer;

    }

}

package Builder;

public class DesktopComputerBuilder extends ComputerBuilder{

    public void buildCPU() {

        computer.setCPU("安装台式机CPU");

    }

    public void buildRAM() {

        computer.setRAM("安装台式机内存");

    }

    public void buildHard() {

        computer.setHard("安装台式机硬盘");

    }

    public void buildHost() {

        computer.setHost("安装台式机主机");

    }

}

package Builder;

public class Director {

    private ComputerBuilder cb;

    public void setComputerBuilder(ComputerBuilder c)

    {

        cb=c;

    }

    public Computer construct()

    {

        cb.buildCPU();

        cb.buildRAM();

        cb.buildHard();

        cb.buildHost();

        return cb.getComputer();

    }

}

package Builder;

 

public class LaptopComputerBuilder extends ComputerBuilder{

    public void buildCPU() {

        computer.setCPU("安装笔记本CPU");

    }

    public void buildRAM() {

        computer.setRAM("安装笔记本内存");

    }

    public void buildHard() {

        computer.setHard("安装笔记本硬盘");

    }

    public void buildHost() {

        computer.setHost("安装笔记本主机");

    }

}

package Builder;

import java.util.Scanner;

 

public class main {

    public static void main(String args[])

    {

        ComputerBuilder cb = null;

        System.out.println("请选择:1、笔记本 2、台式机");

        Scanner input=new Scanner(System.in);

        int i=input.nextInt();

        if(i==1) {

            cb=new LaptopComputerBuilder();

        }else if(i==2) {

            cb=new DesktopComputerBuilder();

        }else {

            System.out.println("输入无效!");

        }

        Director dir=new Director();

        dir.setComputerBuilder(cb);

        Computer computer=dir.construct();

        System.out.println("计算机组成:");

        System.out.println(computer.getCPU());

        System.out.println(computer.getRAM());

        System.out.println(computer.getHard());

        System.out.println(computer.getHost());

    }

}

3.注意编程规范。

标签:String,软件设计,cb,番外,System,public,computer,void
From: https://www.cnblogs.com/zjsdbk/p/17797922.html

相关文章

  • 软件设计师考试大纲分析
    大纲以及分值想要高效的学习,首先要先分析考试大纲。下面是系统架构师新大纲上午题软件设计师分值计算机组成原理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自动化办公的问题,一起来看看吧。上一篇【论草莓如何成为冻干莓】大佬给出了两个方法,这一篇文章,一起来围观粉丝自己在实际运行过程中所遇到的问题。二、实现过程这里是【瑜亮老师】亲测代码是无误了,肯......
  • 软件设计师学习-海明码
    wiki海明码(HammingCode)是由贝尔实验室的RichardHamming设计的,是一种利用奇偶校验来检错和纠错的校验方法。方法是在数据位插入k个校验位,通过扩大码距来实现检错和纠错。1.理论构成设数据位有n位置,校验位有k位,则n与k需要满足关系:2k-1≥n+k。按照如下规则......