知识卡片

透明安全权衡

普通读书笔记卡 · 1921.c.1

内容

组合接口越透明,客户端越简单;接口越安全,叶子对象越不容易暴露无意义操作。发散:透明性和类型安全经常互相拉扯,选择取决于客户端简化是否比误用风险更重要。

参考来源

- 位置:第4章《结构型模式》4.3节「Composite(组合)」9.实现第4点「声明管理子部件的操作」(源文件:_epub-src/OEBPS/Text/part0072.xhtml) - 结论依据:原文明确指出这需要在安全性和透明性之间做出选择:在根部定义子结点管理接口具有良好透明性但以安全性为代价,在Composite子类中定义则安全但损失透明性,直接支持卡片对组合接口透明性与安全性此消彼长的论述。 - 原始内容:"这需要在安全性和透明性之间做出选择。在类层次结构的根部定义子结点管理接口的方法具有良好的透明性,因为你可以一致地使用所有的组件,但是这一方法是以安全性为代价的……在Composite类中定义管理子部件的方法具有良好的安全性……但是这又损失了透明性。"