为什么许多开发人员反对在OOP中使用“受保护”修饰符?
我的一位同事正在上面向对象编程入门课,他的教授问了他一个讨论问题:
为什么许多开发人员反对在类上/类中使用“受保护”修饰符?
当这个问题在午餐时被提出来时,我和我的同事想不出为什么有人会反对在课堂上使用修饰符。撇开问题的前提不谈(假设许多开发人员实际上反对修饰符;他们是吗?),我们试图找出原因。protected
protected
就个人而言,我对类使用访问修饰符的唯一一次是当我编写了可能要在测试环境中补充的代码时。例如,我可能会编写一个没有调试信息的基类,然后创建一个用于测试的新类,从基类继承并覆盖其方法以在基方法调用之前/之后添加调试输出代码。我想我可以很容易地使用涉及接口和依赖注入的设计来实现相同的目标,但我唯一的经验是用于测试目的。在这种情况下,避免的唯一原因是因为你可以用更好的方式完成同样的事情。protected
protected
protected
为什么开发人员会反对在他们的OOP设计中使用修饰符?protected
注意:因为教授问的是一个不特定于任何一种语言的一般OOP问题,所以我不确定答案是否会因为C#,Java等中受保护的
实现不同而有不同的权重。