Mar*_*oma 34 java oop checkstyle
我在eclipse中得到了很多警告:
变量'myVariable'必须是私有的并且具有存取方法.
我想我得到它们是因为我没有在eclipse中手动将protectedAllowed设置为true.但是为什么默认设置为false?我不应该使用受保护的属性吗?
hom*_*ome 27
从理论上讲,受保护的属性(变量)是面向对象语言中的反模式.如果只有子类需要访问其超类的成员属性,则将属性本身定义为private,并创建受保护的访问器方法(getter和setter).这种方法适用于"信息隐藏"的概念.还有一种替代解决方案:定义受保护的不可变(最终)成员属性.
进一步阅读:
Ror*_*ick 19
我想,让一切都变得私密是一种反模式.通常,类在一堆中使用,并且整体表示放置在单独包中的封装实体.他们不需要彼此隐藏某些东西,但是这条规则强制隐藏起来没有充分的理由,增加了混乱并有效地使风格(据我所知)变得更糟.同时,我们经常看到包中的每个类都是公开的.我想这更糟糕,但checkstyle不会检查.
封装不仅存在于类级别,还存在于封装,系统等方面.而且我认为这些水平更为重要.
允许包访问简化了包中的编程,并减少了样板代码.通常,只需要从包中进行访问.私有访问迫使您创建许多几乎无用的访问器方法.这实际上具有减少封装和信息隐藏的效果,因为类必须通过公共访问器方法公开内部数据/结构应用程序而不是仅通过包广泛.默认的包可见性也使测试更容易,因为测试类也存在于同一个包中(在测试目录/树中).
| 归档时间: |
|
| 查看次数: |
18929 次 |
| 最近记录: |