组合模式(Composite Pattern)是一种结构型设计模式,用于将对象组合成树形结构以表示“部分-整体”的层次结构,使客户端对单个对象和组合对象的使用具有一致性。尽管组合模式很常用,但在实际应用中容易出现一些典型错误。以下是组合模式的常见错误及分析:
add()、remove()、getChild() 等方法class File implements Component {
void add(Component c) {
throw new UnsupportedOperationException();
}
}
| 模式 | 特点 | 问题 |
|---|---|---|
| 透明模式 | Component 提供所有方法 | 叶子节点方法无意义 |
| 安全模式 | 只有 Composite 有管理子节点的方法 | 客户端需要类型判断 |
instanceofA
└── B
└── A (循环)
Composite 继承 LeafLeaf 继承 Compositeif (component instanceof Composite) {
...
}
组合模式最大的错误,是让“结构”承担了不该承担的责任。
常见错误一句话总结:
如果你愿意,我也可以:
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。