首页 > 其他分享 >10.31日报

10.31日报

时间:2024-11-27 10:32:43浏览次数:6  
标签:name 10.31 日报 component void Component Folder public

完成设计模式实验:

实验10:组合模式

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

1、理解组合模式的动机,掌握该模式的结构;

2、能够利用组合模式解决实际问题。

 
   

 

 

[实验任务一]:组合模式

用透明组合模式实现教材中的“文件夹浏览”这个例子。

实验要求:

1.  文件的执行不需真正实现,只需简单提示即可;

 

2.  提交源代码;

  1. package define;

    import java.util.ArrayList;
    import java.util.List;

    // 抽象组件
    interface Component {
        void add(Component component);
        void remove(Component component);
        Component getChild(int i);
        void operation();
    }

    // 叶子组件
    class File implements Component {
        private String name;

        public File(String name) {
            this.name = name;
        }

        @Override
        public void add(Component component) {
            System.out.println(name + "不能添加子节点");
        }

        @Override
        public void remove(Component component) {
            System.out.println(name + "不能移除子节点");
        }

        @Override
        public Component getChild(int i) {
            System.out.println(name + "没有子节点");
            return null;
        }

        @Override
        public void operation() {
            System.out.println("文件名:" + name);
        }
    }

    // 组合组件
    class Folder implements Component {
        private String name;
        private List<Component> children;

        public Folder(String name) {
            this.name = name;
            this.children = new ArrayList<>();
        }

        @Override
        public void add(Component component) {
            children.add(component);
        }

        @Override
        public void remove(Component component) {
            children.remove(component);
        }

        @Override
        public Component getChild(int i) {
            return children.get(i);
        }

        @Override
        public void operation() {
            System.out.println("文件夹名:" + name);
            for (Component component : children) {
                component.operation();
            }
        }
    }

    // 客户端代码
    public class CompositePatternDemo {
        public static void main(String[] args) {
            Folder rootFolder = new Folder("根目录");

            Folder mathFolder = new Folder("数学");
            Folder physicsFolder = new Folder("物理");
            Folder chineseFolder = new Folder("语文");

            File mathFile1 = new File("math1.txt");
            File mathFile2 = new File("math2.txt");

            rootFolder.add(mathFolder);
            rootFolder.add(physicsFolder);
            rootFolder.add(chineseFolder);

            mathFolder.add(mathFile1);
            mathFolder.add(mathFile2);

            // 执行文件操作
           
    rootFolder.operation();
        }
    }

 

 

3.注意编程规范。

 

标签:name,10.31,日报,component,void,Component,Folder,public
From: https://www.cnblogs.com/lijianlongCode13/p/18571777

相关文章

  • 10.18日报
    上了软件构造和企业文化的课,下午上了人机交互的课,完成了部分实验内容,做了一个主界面以下为部分代码:namespacetest1{partialclassloginForm{///<summary>///Requireddesignervariable.///</summary>privateSystem.ComponentMode......
  • 10.21日报
    上午进行了软件设计的实验课,以下为实验内容:实验6:原型模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解原型模式的动机,掌握该模式的结构;2、能够利用原型模式解决实际问题。     [实验任务一]:向量的原型用C++完成数学中向量的封装,其中,用......
  • 10.17日报
    今天进行了机器学习B的实验,以下为实验内容:上机实验一:数据准备与模型评估1、实验目的熟悉Python的基本操作,掌握对数据集的读写实现、对模型性能的评估实现的能力;加深对训练集、测试集、N折交叉验证、模型评估标准的理解。2、实验内容(1)利用pandas库从本地读取iris数据......
  • 10.16日报
    上午上了软件设计的课,进行了软件设计的实验实验4:抽象工厂模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解抽象工厂模式的动机,掌握该模式的结构;2、能够利用抽象工厂模式解决实际问题。     [实验任务一]:人与肤色使用抽象工厂模式,完成下......
  • 10.15日报
    今天进行了mes系统的开发的学习,了解了mes系统开发的主要步骤,要明确目标,弄清楚需求分析报告的要求,并且设置对应的数据库,并且了解了如何绘制上下文图。下午完成软件设计实验以下为实验内容实验3:工厂方法模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解工厂方......
  • Runway 新增视频扩展画面功能;Anthropic 再获亚马逊投资 40 亿美元,聚焦 AI 芯片研发丨
      开发者朋友们大家好: 这里是「RTE开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享RTE(Real-TimeEngagement)领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「有看点的会议」,但内容仅代表编辑......
  • 70 个群都来问我的 AI 日报,是这么做的。
    最近我给FastGPT用户交流群里接入了AI日报,每天早上10点会自动向群里推送AI日报,让群里的小伙伴们第一时间了解到昨天AI领域都发生了哪些大事。效果大概是这个样子的:如果你对FastGPT感兴趣,可以直接扫码入群:除此之外,我还同步一份到公司的飞书群里,这样公司的小伙伴们......
  • Swarm 框架登场:OpenAI 第 3 阶段「敲门砖」;马斯克的 Teslabot 实际有人远程操控丨 RTE
       开发者朋友们大家好: 这里是「RTE开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享RTE(Real-TimeEngagement)领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「有看点的会议」,但内容仅代表编......
  • 字节预热智能硬件 Ola Friend,预计为智能耳机;鸿蒙 NEXT 公测正式开启,微信邀请内测丨RTE
       开发者朋友们大家好: 这里是「RTE开发者日报」,每天和大家一起看新闻、聊八卦。 我们的社区编辑团队会整理分享RTE(Real-TimeEngagement)领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「有看点的会议」,但内容仅代......
  • 大模型日报|16 篇必读的大模型论文
    大家好,今日必读的大模型论文来啦!1.微软、清华团队提出DiffTransformerTransformer往往会将注意力过度分配到不相关的上下文中。在这项工作中,来自微软研究院和清华大学的研究团队提出了DiffTransformer,它可以在消除噪音的同时放大对相关上下文的注意力。具体来说,差......