Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我知道protected当想要使变量在扩展当前类的所有类中可见时应该使用,但这究竟意味着什么?最常见的用例是什么?
protected
我想解决这个问题的另一种方法是,当您希望类变量从类的孩子而不是外部类可见时,关键情况是什么。
我遇到的大多数“受保护”访问修饰符的用例都是“模板方法”模式的实例化。
在这种模式中,算法的细节被委托给子类。
实际上,受保护的访问在您的类不变量中创建了一个漏洞:子类可能会滥用成员,从而使您的不变量不再适用。
大多数时候,有比受保护访问更好的设计替代方案,依赖倒置是第一个想到的。
我的建议?不要将对象的内部结构发布给您不信任的任何人。谨慎使用“受保护”!
受保护的变量有助于有效地访问基类的变量,而无需通过 get/set 约束。
受保护变量的有用性在开发应该用于其他应用程序的库中非常重要。它可以帮助您在 lib 环境中自由使用变量而不将它们公开,并且当您完成继承的类时,它们被禁止进入外部环境。