1

我知道protected当想要使变量在扩展当前类的所有类中可见时应该使用,但这究竟意味着什么?最常见的用例是什么?

我想解决这个问题的另一种方法是,当您希望类变量从类的孩子而不是外部类可见时,关键情况是什么。

4

2 回答 2

2

我遇到的大多数“受保护”访问修饰符的用例都是“模板方法”模式的实例化。

在这种模式中,算法的细节被委托给子类。

实际上,受保护的访问在您的类不变量中创建了一个漏洞:子类可能会滥用成员,从而使您的不变量不再适用。

大多数时候,有比受保护访问更好的设计替代方案,依赖倒置是第一个想到的。

我的建议?不要将对象的内部结构发布给您不信任的任何人。谨慎使用“受保护”!

于 2012-09-13T18:17:11.173 回答
1

受保护的变量有助于有效地访问基类的变量,而无需通过 get/set 约束。

受保护变量的有用性在开发应该用于其他应用程序的库中非常重要。它可以帮助您在 lib 环境中自由使用变量而不将它们公开,并且当您完成继承的类时,它们被禁止进入外部环境。

于 2012-09-13T17:58:52.640 回答