组合模式

devtools/2024/10/18 19:27:18/

组合模式

把一组相似的对象当作一个单一的对象。如:树形菜单

java">public class Menu {String name;List<Menu> child;public Menu(String name){this.name = name;child = new ArrayList<>();}public void addChild(Menu menu){child.add(menu);}public void printmMenu(){System.out.println(name);child.forEach(Menu::printmMenu);}
}

测试:

java">public class Main {public static void main(String[] args) {Menu root = new Menu("root");root.addChild(new Menu("child1"));root.addChild(new Menu("child2"));root.printmMenu();}
}

http://www.ppmy.cn/devtools/117863.html

相关文章

C++(9.26)

1.什么是虚函数&#xff0c;什么是纯虚函数 虚函数是在基类中声明为virtual的函数&#xff0c;可以被重新定义来实现多态&#xff0c;纯虚函数则是以0结尾的虚函数&#xff0c;是没有实现的虚函数。 2.基类为什么需要虚构析函数 为了防止在后面delete释放空间时导致溢出 数据…

计算机组成原理(笔记4)

定点加减法运算 补码加法&#xff1a; 补码减法&#xff1a; 求补公式&#xff1a; 溢出的概念 在定点小数机器中,数的表示范围为|&#xff58;|<1。在运算过程中如出现大于1的现象,称为 “溢出”。 上溢&#xff1a;两个正数相加&#xff0c;结果大于机器所能表示的最…

JavaEE——多线程

接着上篇博客我们已经学习了进程的相关概念&#xff0c;了解到进程里面的相关重要属性&#xff0c;那么这篇博客呢我们要学习一个新的知识点——线程&#xff01; 一、引入进程的目的 首先引入进程这个概念&#xff0c;是为了解决“并发编程”这样的问题。因为CPU 再往小了做…

软件测评CNAS认可实验室程序文件之检测报告的编制和交付程序

软件测评实验室在申请CNAS认可时&#xff0c;需要根据相关准则文件的要求&#xff0c;建立质量管理体系&#xff0c;其中程序文件是质量管理体系中非常重要的一环。在前面的文章中&#xff0c;我们为大家整体介绍了CNAS软件测评实验室程序文件主要都有哪些&#xff0c;以及对部…

JVM 类加载机制2

扩展类加载器&#xff08;Extension ClassLoader&#xff09;&#xff0c;该类加载器是由 ExtClassLoader&#xff08;sun.misc.Launcher$ExtClassLoader&#xff09;实现&#xff0c;负责将 <JRE_HOME>/lib/ext 或者被 java.ext.dir 系统变量所指定路径中的所有类库加载…

前端和后端的相对路径和绝对路径

1. 相对路径访问图片 test.html 位于 web/a/b/c/ 目录中&#xff1a; 若要访问 static/img/ 文件夹中的图片&#xff08;假设图片名为 image.png&#xff09;&#xff0c;相对路径应该是&#xff1a; <img src"../../../static/img/image.png" alt"Image&quo…

CSS——边框过渡效果

CSS——边框过渡效果 今天浅浅的水一下边框过渡效果。 按钮边框过渡效果 小小的解释一波 这里采用了一个外围的容器盒子&#xff0c;为了实现容器盒子的水平居中&#xff08;这个简单&#xff09;和垂直居中&#xff08;这个就稍微复杂一些&#xff0c;往后可能会出一期专门设…

后端-navicat查找语句(单表与多表)

表格字段设置如图 语句&#xff1a; 1.输出 1.输出name和age列 SELECT name,age from student 1.2.全部输出 select * from student 2.where子语句 1.运算符&#xff1a; 等于 >大于 >大于等于 <小于 <小于等于 ! <>不等于 select * from stude…