Oop 何时将方法声明为私有
我正在寻找具体而准确的规则来确定如何声明方法的可见性。这不是语言不可知论,它适用于标准OOP语言。一个好的规则是: 成员的可访问性不应超过其需要 从Oop 何时将方法声明为私有,oop,design-patterns,coding-style,Oop,Design Patterns,Coding Style,我正在寻找具体而准确的规则来确定如何声明方法的可见性。这不是语言不可知论,它适用于标准OOP语言。一个好的规则是: 成员的可访问性不应超过其需要 从private开始,并根据需要使其更易于访问。基本上: Public用于当方法必须由外部类访问时。类似于getState()的东西适合这里 Private用于任何其他类都不应访问该方法的情况,例如changeState(…)。一般来说,这与对象内容的实际更改有关-可能您会有一个publicsetX(intx),它只调用privatesetXInte
private
开始,并根据需要使其更易于访问。基本上:
- Public用于当方法必须由外部类访问时。类似于
的东西适合这里getState()
- Private用于任何其他类都不应访问该方法的情况,例如
。一般来说,这与对象内容的实际更改有关-可能您会有一个publicchangeState(…)
,它只调用privatesetX(intx)
,这样您就可以进行额外的类型检查/安全性/等等。为了安全起见,您还可以将所有内容设置为私有,直到必须进行其他操作为止setXInternal(intx)
- 受保护的基本上是“公共儿童课程,否则为私人课程”。我可以走任何一条路
1.它所做的事情(行为)
2.如何实现它们(实施)
世界关心你的对象的行为。它不应该(经常)关心它是如何在引擎盖下实现这种行为的。保持实现细节的私密性,并公开行为。我认为公共、受保护和私有关键字的帮助只是为了使代码更加清晰 因此,您将使用public作为类的API,private明确说明如何不扩展类,并在其他情况下进行保护
常用的实用方法是永远不要使用private,而只使用public或protected。public用于公共API的一部分。
为您希望子类能够调用的非公共函数提供保护。
Private,如果您不想让子类和所述方法混在一起(甚至不想知道它的存在)
在C++、C++和C语言中,如果你想让一个子类能够重写它,不要忘记标记一个方法。你更是说它是语言不可知的,但不是语言特定的。+ 1,但是你从哪里引用这个?我很想看看上下文和文章的其余部分。我只是编造出来的,但我确信之前已经说过了。是的,但是成员可能已经被错误地定义为OOP(例如:一个巨大的类处理多个关注点)@hunter我应该先考虑如何创建API/设计,而不是如何将私有/公共应用于现有方法。