组合模式(Composite Pattern)是一种结构型设计模式,用于将对象组合成树形结构以表示“部分-整体”的层次结构,使客户端对单个对象和组合对象的使用具有一致性。
下面从优点和缺点两个方面进行总结,并辅以适用场景说明。
✅ 示例:
Component c = new Leaf();
Component c2 = new Composite();
c.operation();
c2.operation();
if/else 或 instanceof 判断。add()、remove())❌ 示例:
leaf.add(child); // 编译通过,但运行可能抛异常
| 类型 | 特点 | 优缺点 |
|---|---|---|
| 透明式 | 所有方法定义在抽象组件中 | 客户端统一,但叶子类可能实现无用方法 |
| 安全式 | 只在组合类中定义管理子节点的方法 | 安全,但客户端需要区分对象类型 |
✅ 适合使用组合模式的情况:
❌ 不适合的情况:
如果你愿意,我也可以:
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。