知识卡片

基本方法应设为protected以符合迪米特法则

普通读书笔记卡 · 1985.a.1

内容

[[模板方法模式的两类方法]]中的基本方法应设为protected而非public:这些方法只是模板方法 内部调用的实现细节,符合[[迪米特法则的定义]]“不该知道的就不公开”。具体模板类若非必要 也不应扩大父类方法的访问权限。发散:这是[[接口高内聚要求减少public方法承诺]]思路在继承 体系内的延伸——暴露范围应刚好覆盖子类需要重写的部分。

参考来源

- 位置:《设计模式之禅(第2版)》第10章《模板方法模式》(源文件:_epub-src/text/part0043.html) - 结论依据:原文明确"抽象模板中的基本方法尽量设计为protected类型,符合迪米特法则,不需要暴露的属性或方法尽量不要设置为protected类型。实现类若非必要,尽量不要扩大父类中的访问权限"。 - 原始内容:抽象模板中的基本方法尽量设计为protected类型,符合迪米特法则,不需要暴露的属性或方法尽量不要设置为protected类型。实现类若非必要,尽量不要扩大父类中的访问权限。