网站建设前期规划方案范文中国新闻

张小明 2026/1/1 4:19:02
网站建设前期规划方案范文,中国新闻,2022中国企业500强,网站建设服务器的配置什么是组合模式#xff1f;组合模式(Composite Pattern)#xff0c;是一种结构型设计模式#xff0c;这种模式将对象组合成树形结构#xff0c;以表示部分--整体的层次关系#xff0c;组合模式使得用户对单个对象和组合对象的使用具有一致性。组合模式的结构角色说明Compo…什么是组合模式组合模式(Composite Pattern)是一种结构型设计模式这种模式将对象组合成树形结构以表示部分--整体的层次关系组合模式使得用户对单个对象和组合对象的使用具有一致性。组合模式的结构角色说明Component抽象组件定义叶子和容器的公共接口Leaf叶子节点实现 Component 的具体行为如 FileComposite容器节点持有子组件列表实现 Component 并提供 add/remove 等管理方法如 Folder代码实现-文件系统示例第一步定义抽象组件FileSystemItempublic abstract class FileSystemItem { protected String name; public FileSystemItem(String name) { this.name name; } /** * 显示文件或目录的信息 * param indent 缩进级别用于显示层级结构 */ public abstract void display(int indent); /** * 获取文件或目录的大小 * return 文件或目录的大小字节 */ public abstract long getSize(); // 工具方法生成缩进 protected String getIndent(int level) { return .repeat(level); } }第二步实现叶子节点Filepublic class File extends FileSystemItem { private long size; public File(String name, long size) { super(name); this.size size; } /** * 显示文件或目录的信息 * * param indent 缩进级别用于显示层级结构 */ Override public void display(int indent) { System.out.println(getIndent(indent) name ( size KB)); } /** * 获取文件或目录的大小 * * return 文件或目录的大小字节 */ Override public long getSize() { return size; } }第三步实现容器节点Folderpublic class Folder extends FileSystemItem { private ListFileSystemItem children new ArrayList(); public Folder(String name) { super(name); } /** * 显示文件或目录的信息 * * param indent 缩进级别用于显示层级结构 */ Override public void display(int indent) { System.out.println(getIndent(indent) name); for (FileSystemItem child : children) { child.display(indent 1); // 递归显示子项 } } // 管理子组件的方法仅 Composite 需要 public void add(FileSystemItem item) { children.add(item); } public void remove(FileSystemItem item) { children.remove(item); } public ListFileSystemItem getChildren() { return Collections.unmodifiableList(children); } /** * 获取文件或目录的大小 * * return 文件或目录的大小字节 */ Override public long getSize() { return children.stream() .mapToLong(FileSystemItem::getSize) .sum(); } }第四步客户端使用public class CompositeDemo { public static void main(String[] args) { // 构建树形结构 Folder project new Folder(MyProject); Folder docs new Folder(docs); docs.add(new File(requirements.md, 10)); docs.add(new File(design.png, 500)); Folder src new Folder(src); src.add(new File(Main.java, 20)); src.add(new File(Utils.java, 15)); project.add(docs); project.add(src); project.add(new File(README.md, 5)); // 统一操作无需区分 File 或 Folder project.display(0); System.out.println(\n总大小: project.getSize() KB); } }运行输出两种组合模式变体类型特点优缺点透明式TransparentComponent 接口中声明所有方法包括add,remove客户端完全透明但 Leaf 必须抛出UnsupportedOperationException安全式Safe只在 Composite 中定义管理子节点的方法类型安全但客户端需知道对象是否为 Composite如需调用add我们上面的例子采用的是安全式更符合 Java 的类型安全理念。组合模式的优点✅简化客户端代码统一接口无需判断类型。✅易于扩展新增组件类型不影响现有逻辑。✅天然支持递归操作非常适合树形数据结构。典型应用场景️GUI 组件树Swing/AWT 中的Container和ComponentDOM 树操作HTML 元素的父子结构组织架构公司 → 部门 → 员工游戏对象层级场景 → 角色 → 武器/特效菜单系统主菜单 → 子菜单 → 菜单项总结组合模式通过抽象出统一的行为接口巧妙地将“个体”与“整体”统一处理极大提升了代码的可读性、可维护性和可扩展性。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

甲马营seo网站优化的太原论坛天涯社区

大麦抢票神器:DamaiHelper完整使用手册 【免费下载链接】DamaiHelper 大麦网演唱会演出抢票脚本。 项目地址: https://gitcode.com/gh_mirrors/dama/DamaiHelper 还在为抢不到心仪的演唱会门票而烦恼吗?面对秒光的演出场次,手动操作往…

张小明 2025/12/23 6:50:31 网站建设

中心网站设计接广告赚钱的平台

分析思路重点从集群任务、系统资源、集群状态及变量三方面进行分析。1、集群任务分析:重点对并发任务数较高、资源使用率较高的集群进行分析;定期抽取集群任务趋势数据、审计日志,分析任务数趋势、重点观察高并发任务数时点及趋势&#xff0c…

张小明 2025/12/23 6:49:28 网站建设

做网站乱码互联网营销师证

Wan2.2-T2V-A14B支持多模态输入吗?图文混合提示词尝试 在短视频爆炸、内容为王的时代,AI生成视频已经不再是“能不能做”的问题,而是“做得多好、多快、多可控”的较量。🎬 阿里云推出的 Wan2.2-T2V-A14B,作为国产自研…

张小明 2025/12/23 6:48:24 网站建设

软装设计网站大全安徽省地图

课题背景随着教育信息化建设的不断推进,学校管理系统的智能化、高效化成为现代教育发展的重要趋势。横塘小学作为一所基础教育学校,学生托管管理是日常运营的重要组成部分,涉及学生考勤、课程安排、家长沟通、费用结算等多个环节。传统的人工…

张小明 2025/12/23 6:47:21 网站建设

怎么做网站结构图长沙企业网站设计

养护工区是交通基础设施(如公路、铁路、桥梁等)养护管理中的重要基层单位,主要承担日常巡查、维护、保养及应急抢修等任务,确保设施的安全、畅通和耐久性。目前,养护工区往往跟随道路建设,数量较多但缺乏统…

张小明 2025/12/23 6:46:18 网站建设

wordpress 站点管理员简单做网站

Excalidraw 核心功能实现原理揭秘 在数字白板工具层出不穷的今天,大多数产品追求的是精准、规整与自动化。而 Excalidraw 却反其道而行之——它用“不完美”的手绘风格,还原了人类最原始的创作直觉:草图、涂鸦、即兴表达。这种看似简单的视觉…

张小明 2025/12/31 17:03:53 网站建设