|
12
|
| Manish Basantani · 技术社区 · 16 年前 |
|
|
1
8
不一定。如果您希望隐式实现接口,那么公共成员是可以接受的。 一般来说,如果类是内部的,那么公共成员就没有什么意义。您不会受到伤害,因为您将无法在定义类的模块之外以强类型方式公开该类,但是如果您没有隐式实现接口,就没有太大的优势。 |
|
|
2
5
假设这些公共成员仍然是类的公共接口的一部分是合理的,即使类本身具有内部范围也是如此。当我看到
|
|
|
3
2
这个
|
|
4
2
我就是这么做的。当我的大脑认为“这个成员应该是可以接近的”时,我无法控制地开始用手指敲打P U B L I C。不过,当我宣布上课的时候,没有这样的问题。 一个很大的优势是:使内部类公开(或者相反的方式)的重构只需要更改一个词。微软也这样做了,主要是。 |
|
|
5
1
我知道的唯一功能原因是隐式实现接口。所有接口方法都必须用
除了这种有限的情况,我真的不喜欢这种做法。这样做会使您的应用程序的公共表面积变得更难grep。相反,您必须进行更高级的搜索。 另外,让我感到困扰的是,成员被标记为公开的,而实际上他们不是。 |
|
|
6
0
我试图想象当我设置方法修饰符时类访问修饰符可能发生变化。如果一个方法需要是内部的,即使类是公共的,我也会这样说。如果不是这样,那么该方法将作为公共方法写入。 |
|
|
7
0
我会说是的,这是糟糕的编程实践。 这不仅仅是控制访问。它还将使代码更模块化。 如果一个对象的数据使用者需要该对象的一些数据,它将调用getter方法。如果以后要返回的数据不同,程序员只需要在一个地方更改代码,而不需要在所有读取该数据的地方(如果成员是公共的)。这类似于为什么我们应该编写函数/方法并调用它们,而不只是复制和粘贴关于该位置的代码。 这里用一个例子解释: http://www.programmingincpp.com/private-versus-public-data-members-in-a-class.html |