避免访问修饰符的原因

什么是有效的理由不使用关键字公共,私人,受保护的PHP? 故事:我已经开始了一个项目,其团队在他们的代码中积极使用访问修饰符(甚至明确地“公开”),并想说服我这样做。我总是觉得这种东西在像php这样的动态语言中完全没用,但我意识到我的直觉在技术讨论中几乎不是一个论点。因此,我正在寻找一个可靠,清晰的解释为什么访问修饰符在php中无用(甚至有害)。 我知道已经存在一些类似的主题 PHP类中protected / private的重要性 为什么不在PHP中使用'protected'或'private'? 最好使用私有方法还是受保护的方法? 但是我发布这个有几个原因 我不是在问我是否应该使用“公开”。我已经没有使用它了。 我明确没有兴趣听到为什么访问修饰符是好的(我知道它们很糟糕,我只需要专家来确认)。 如果您要告诉我“最佳实践”和“OOP原则”,请不要打扰。 TIA     
已邀请:
private
修饰符是 - imho - 极度过度使用。它的问题在于它无法扩展类。但更重要的是,它是一个概念,导致人们编写面向类的代码,而不是面向对象的代码。 我没有牛肉与
protected
属性。事实上,我认为它应该是唯一使用的范围。
protected
方法通常很麻烦,因为它会使测试变得更难。     
  有效的理由不使用关键字public,private,php? 当你想向后兼容PHP4时(因为它们在PHP4中不存在) 当代码约定定义/允许它时 什么时候不关心封装和信息隐藏 什么时候不在PHP中使用OOP范例(没有类,没有可见性)     
在像PHP这样的动态语言中,假设程序员知道代码是如何工作的。这意味着程序员知道要调用哪些方法,哪些方法不应该直接调用。 这类似于无类型变量:在类型化语言中,每个变量都是显式类型的,但在PHP中,假定程序员知道每个变量的类型。     
马里奥钉了它(从评论中复制)   访问修饰符在Java / C ++和编译代码中是有意义的,它们是可执行的。在未编译的脚本语言中,它们很容易被删除。因此,它们应该被视为装饰器,因此实际上可以实现为编码约定。 (参见Python中的undercoritis,以及几乎任何其他脚本语言。与其无用的访问装饰器相比,PHP非常独特。)      您不会有太多成功说服您的队友了解有用的API优于限制性封装的优势。语法强制访问装饰器的使用通常是货物驱动的。     

要回复问题请先登录注册