首页 > 其他分享 >10.31

10.31

时间:2024-11-13 23:12:10浏览次数:1  
标签:String 10.31 void computer Override lap public

实验5:建造者模式

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

1、理解建造者模式的动机,掌握该模式的结构;

2、能够利用建造者模式解决实际问题。

 

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

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

实验要求:

 

 

2、源码

 

Builder

package sc5;

public abstract class Builder {

 

    Computer computer = new Computer();

 

    abstract public void buildZhuJi();

 

    abstract public void buildYinPan();

 

    abstract public void buildCpu();

 

    abstract public void buildNeiCun();

 

    public Computer getCompture(){

 

        return computer;

 

    }

 

}

computer


package sc5;

public class Computer {

 

    private String cpu;

 

    private String neiCun;

 

    private String yinPan;

 

    private String zhuJi;

 

 

 

 

 

    public String getZhuJi() {

 

        return zhuJi;

 

    }

 

 

 

    public void setZhuJi(String zhuJi) {

 

        this.zhuJi = zhuJi;

 

    }

 

 

 

    public String getYinPan() {

 

        return yinPan;

 

    }

 

 

 

    public void setYinPan(String yinPan) {

 

        this.yinPan = yinPan;

 

    }

 

 

 

    public String getNeiCun() {

 

        return neiCun;

 

    }

 

 

 

    public void setNeiCun(String neiCun) {

 

        this.neiCun = neiCun;

 

    }

 

 

 

    public String getCpu() {

 

        return cpu;

 

    }

 

 

 

    public void setCpu(String cpu) {

 

        this.cpu = cpu;

 

    }

 

}

desktop


package sc5;

 

 

public class desktop extends Builder{

 

 

 

    @Override

 

    public void buildZhuJi() {

 

        computer.setZhuJi("DZJ");

 

    }

 

 

 

    @Override

 

    public void buildYinPan() {

 

        computer.setYinPan("DYP");

 

    }

 

 

 

    @Override

 

    public void buildCpu() {

 

        computer.setCpu("DCPU");

 

    }

 

 

 

    @Override

 

    public void buildNeiCun() {

 

        computer.setNeiCun("DNC");

 

    }

 

}

Factory


package sc5;

public class Factory {

 

    private Builder comptureKind;

 

 

 

    public void setCompture(Builder kind) {

 

        this.comptureKind = kind;

 

    }

 

    public Computer construct(){

 

        comptureKind.buildCpu();

 

        comptureKind.buildYinPan();

 

        comptureKind.buildZhuJi();

 

        comptureKind.buildNeiCun();

 

        return comptureKind.getCompture();

 

    }

 

}

 

mobile


package sc5;

public class mobile extends Builder{

 

    @Override

 

    public void buildZhuJi() {

 

        computer.setZhuJi("MZJ");

 

    }

 

 

 

    @Override

 

    public void buildYinPan() {

 

        computer.setYinPan("MYP");

 

    }

 

 

 

    @Override

 

    public void buildCpu() {

 

        computer.setCpu("MCPU");

 

    }

 

 

 

    @Override

 

    public void buildNeiCun() {

 

        computer.setNeiCun("MNC");

 

    }

 

}

 

Store

package sc5;

public class Store {

 

    public static void main(String[] args) {

 

        Builder lap;

 

        Factory factory=new Factory();

 

        for (int i = 0; i < 2; i++) {

 

            if(i==1)

 

                lap = new mobile();

 

            else

 

                lap=new desktop();

 

            factory.setCompture(lap);

 

            factory.construct();

 

            System.out.println(lap.getCompture().getCpu());

 

            System.out.println(lap.getCompture().getNeiCun());

 

            System.out.println(lap.getCompture().getYinPan());

 

            System.out.println(lap.getCompture().getZhuJi());

 

        }

 

 

 

    }

 

}

 

标签:String,10.31,void,computer,Override,lap,public
From: https://www.cnblogs.com/zzqq1314/p/18545022

相关文章

  • Codeforces Round 983 (Div. 2) 10.31 ABC题解
    CodeforcesRound983(Div.2)10.31题解A.Circuit数学(math)贪心(greedy)模拟(implementation)题意:有\(n\)盏灯,对应\(2\astn\)个开关,即每盏灯对应两个开关,开关打开或者关闭用\(1\)和\(0\)表示。给出\(2\astn\)个开关的状态,需要求解出可能开灯的最小数量和最大数量。......
  • C#/.NET/.NET Core技术前沿周刊 | 第 11 期(2024年10.21-10.31)
    前言C#/.NET/.NETCore技术前沿周刊,你的每周技术指南针!记录、追踪C#/.NET/.NETCore领域、生态的每周最新、最实用、最有价值的技术文章、社区动态、优质项目和学习资源等。让你时刻站在技术前沿,助力技术成长与视野拓宽。欢迎投稿、推荐或自荐优质文章、项目、学习资源等。......
  • 2024.10.31 文件管理方案
      2024.10.31文件管理方案   文件管理方案(注意:红色文字为应用程序软件的名称) 金山文档请在使用微信扫码登录的金山文档中新建或导入需要长时间大量编辑、长期记录或者分享给他人和他人一起查看/编辑的文档或表格。WPS文档表格打开文件密码和7-ZIP解压缩密码......
  • 代码源10.31 总结
    T1想写个\(n^2\)dp,\(dp_{i,j}\)表示Alice有\(i\)个数,Bob有\(j\)个数,想了快一个小时,还是不会,然后推样例,把情况全部列出来,发现样例有前3个是3个连续的0,所以<=6的数不会出现在第4位及以后,然后就发现每一段连续的1或0都可以单独考虑,想,发现从小到大给两人分数的话,要想某一段......
  • 10.31每日总结:《程序员修炼之道》读后感3
    读完《程序员修炼之道:从小工到专家》,我对编程这一职业有了更深刻的认识。这本书强调了程序员应具备的各种品质和技能。它提醒我们要注重代码的可读性和可维护性,这不仅利于自己日后对代码的修改,也方便团队中的其他成员理解和协作。就像建造一座坚固的大厦,清晰的代码结构是坚实的基......
  • GitHub每日最火火火项目(10.31)
    open-mmlab/Amphion:“open-mmlab/Amphion”是一个专注于音频、音乐和语音生成的工具包。其发音为/æm’fɑːrən/。这个项目旨在支持可重复的研究,并帮助初级研究人员和工程师在音频、音乐和语音生成的研究与开发领域迈出第一步。在当今数字化时代,音频技术在音乐制作、语......
  • 2024.10.31 近期练习
    板刷ARC,再不刷就退役了。ARC185AmodMGame2猜结论题,两个人牌的总和是\(n\times(n+1)\)。若\(n\times(n+1)\bmodm=0\)或\(>n\)先手获胜。显然手牌还有大于\(1\)张的时候不可能失败。和取模\(m\)为\(0\)那么后手一定最后一张失败;若取模\(\len\)则后手一直......
  • 2024.10.31
    《代码大全2》是一本编程领域的经典之作,为开发者们提供了丰富且实用的指导。在阅读过程中,关于软件构建的前期准备给我留下了深刻印象。书中强调了需求分析的重要性,这就像是大厦的蓝图绘制。如果对需求理解不清晰或存在偏差,后续的代码编写可能会像没有方向的航行。例如,若开发一个......
  • 2024.10.31..
    《代码大全2》是一部编程领域的瑰宝,为编程者打开了一扇通向高质量代码世界的大门。阅读此书,深刻感受到它对于编程全方位的指导意义。从前期的规划设计到具体的代码编写,再到后期的调试优化,无一遗漏。在设计阶段,它教会我们如何准确把握需求,制定合理架构,避免盲目编码。编写代码过程......
  • 2024.10.31.
    《程序员修炼之道》为程序员们呈现了一条从入门到精通的成长路径,宛如一幅指引前行的地图。书中提到的“注重实效的哲学”让我深思。它强调要以一种务实的态度对待编程,明白每个代码决策背后的价值。例如,在选择算法时,不能仅仅因为某个算法新或者复杂就选用,而要根据实际的业务场景......