在我的很多PHP项目中,我最终得到的是具有非公共函数的类,我不打算扩展它们.
最好将这些声明为受保护或私有?
我可以看到两种方式的参数 - 将它们设为私有是一种更为保守的方法,但可以认为如果我希望扩展方法并明确哪些方法由基类扩展,它们可以在以后被保护.
另一方面,使用私有部分反社会,因为它阻止理论上的未来开发人员扩展我的代码而不进行修改?
什么是有效的理由不使用关键字公共,私人,受保护的PHP?
故事:我已经开始了一个项目,其团队在他们的代码中积极使用访问修饰符(甚至明确地"公开"),并想说服我这样做.我总是觉得这种东西在像php这样的动态语言中完全没用,但我意识到我的直觉在技术讨论中几乎不是一个论点.因此,我正在寻找一个可靠,清晰的解释为什么访问修饰符在php中无用(甚至有害).
我知道已经存在一些类似的主题
但是我发布这个有几个原因
TIA
许多人同意只有在您有理由使用受保护的方法时才应使用受保护的方法.测试驱动的开发模型如何进入这个?(特别是关于假装物品.)我有一个朋友,他是TDD的忠实粉丝,现在是BDD并且是C#开发人员,他告诉我他几乎不使用private关键字.在他这么说之后,我一直把它用于田野,但开始违反我的所有方法protected.StackOverflow上的一些人也同意protected默认情况下应该使用 - 你们中的一些人可以在这个问题上权衡一下吗?protected默认情况下使用的最佳理由是什么(因为上面的线程解释的原因不是)?
编辑:根据Oded的评论,protected默认情况下使用和开放 - 封闭原则(一个类应该打开扩展并关闭以进行修改)怎么样?