怎么给自己网站做搜索框广州网站建设联系电话

张小明 2025/12/31 22:28:06
怎么给自己网站做搜索框,广州网站建设联系电话,如何设计网站建设方案,做网站数据库多少钱什么是组合模式#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进行投诉反馈,一经查实,立即删除!

网站域名空间代理网页是干什么的

实用命令与脚本操作指南 1. 部分代码行解析 在某些脚本中,特定行代码有着重要的作用。例如,在 sys_check 脚本里: - 第 285 行:向目标差异文件写入一条注意消息。 - 第 286 行:使用 grep -E 命令,通过将其输出传递给 awk 过滤器,消除目标文件中不必要的 diff…

张小明 2025/12/22 16:23:00 网站建设

四川城乡建设网站首页建设银行观澜支行网站

Langflow源码架构解析:前后端技术详解 在AI应用开发日益复杂的今天,如何快速构建、调试并迭代基于大语言模型(LLM)的工作流,已成为开发者面临的核心挑战。传统方式依赖手写Python脚本串联LangChain组件,不…

张小明 2025/12/30 15:13:04 网站建设

家居企业网站建设新闻怎样做网站挣钱

第一章:Docker MCP 网关扩展开发概述在现代微服务架构中,Docker MCP(Microservice Control Plane)网关作为服务流量的统一入口,承担着路由转发、身份认证、限流熔断等关键职责。随着业务场景的不断演进,标准…

张小明 2025/12/22 16:20:58 网站建设

wordpress小说网自动采集wordpress适合seo

见字如面,我是军哥!上周末,我在给一家知名的保险公司做技术管理培训,一位学员分享了他上家公司一位空降领导的案例,我觉得特别典型(避免暴露隐私,文章出现的人名均为化名)。另外&…

张小明 2025/12/22 16:19:57 网站建设

站长素材官网代运营网店公司

终极指南:3步构建高性能C语言HTTP服务器 【免费下载链接】httpserver.h httpserver.h - 一个单头文件C库,用于构建事件驱动的非阻塞HTTP服务器。 项目地址: https://gitcode.com/gh_mirrors/ht/httpserver.h httpserver.h 是一个轻量级网络库&…

张小明 2025/12/22 16:18:56 网站建设

网站开发建设公司地址网络营销推广方案怎么做

这里写目录标题项目介绍项目展示详细视频演示技术栈文章下方名片联系我即可~解决的思路开发技术介绍性能/安全/负载方面python语言Django框架介绍技术路线关键代码详细视频演示收藏关注不迷路!!需要的小伙伴可以发链接或者截图给我 项目介绍 本系统共有…

张小明 2025/12/22 16:17:55 网站建设