相关疑难解决方法(0)

最好使用私有方法还是受保护的方法?

在我的很多PHP项目中,我最终得到的是具有非公共函数的类,我不打算扩展它们.

最好将这些声明为受保护或私有?

我可以看到两种方式的参数 - 将它们设为私有是一种更为保守的方法,但可以认为如果我希望扩展方法并明确哪些方法由基类扩展,它们可以在以后被保护.

另一方面,使用私有部分反社会,因为它阻止理论上的未来开发人员扩展我的代码而不进行修改?

php oop

33
推荐指数
4
解决办法
5918
查看次数

在php中避免访问修饰符的原因

什么是有效的理由不使用关键字公共,私人,受保护的PHP?

故事:我已经开始了一个项目,其团队在他们的代码中积极使用访问修饰符(甚至明确地"公开"),并想说服我这样做.我总是觉得这种东西在像php这样的动态语言中完全没用,但我意识到我的直觉在技术讨论中几乎不是一个论点.因此,我正在寻找一个可靠,清晰的解释为什么访问修饰符在php中无用(甚至有害).

我知道已经存在一些类似的主题

但是我发布这个有几个原因

  • 我不是在问我是否应该使用"公开".我已经没有使用它了.
  • 我明确没有兴趣听到为什么访问修饰符是好的(我知道它们很糟糕,我只需要专家来确认).
  • 如果您要告诉我"最佳实践"和"OOP原则",请不要打扰.

TIA

php oop private protected public

4
推荐指数
2
解决办法
4697
查看次数

最佳实践:默认的受保护或私有方法和测试驱动开发

类似的问题

我的问题

许多人同意只有在您有理由使用受保护的方法时才应使用受保护的方法.测试驱动的开发模型如何进入这个?(特别是关于假装物品.)我有一个朋友,他是TDD的忠实粉丝,现在是BDD并且是C#开发人员,他告诉我他几乎不使用private关键字.在他这么说之后,我一直把它用于田野,但开始违反我的所有方法protected.StackOverflow上的一些人也同意protected默认情况下应该使用 - 你们中的一些人可以在这个问题上权衡一下吗?protected默认情况下使用的最佳理由是什么(因为上面的线程解释的原因不是)?

编辑:根据Oded的评论,protected默认情况下使用和开放 - 封闭原则(一个类应该打开扩展并关闭以进行修改)怎么样?

oop tdd unit-testing design-principles

4
推荐指数
1
解决办法
1292
查看次数

标签 统计

oop ×3

php ×2

design-principles ×1

private ×1

protected ×1

public ×1

tdd ×1

unit-testing ×1