Mr_*_*s_D 2 java security reflection encapsulation coding-style
经过1000多private秒后private,我发现可能不需要它
public class Outer {
private static class Inner { // you may drop static
private void innerMethod() {}
}
}
Run Code Online (Sandbox Code Playgroud)
是否有任何情况下,该下降private从innerMethod()将使在差异封装(或使用,由外例如)?想想反思
如果不是,建议放弃它或保持它与编码风格?
我说没有和下降,但不知道真的.
编辑:刚刚意识到,这样我做到这一点肯定是错误的-至少对于Inner的领域 -宣称这些领域的私人然后在外部类中使用它们-因为这会产生('合成’)访问的字节码-这是在最臃肿.太棒了 - 所以现在我更感兴趣的是有一个关于声明这些(Inner的字段,使用的方法Outer)包私有(或公共@JBNizet在评论中说)的安全含义的帐户
答案取决于您目前如何使用内部类.
我对内部课程的理念是减轻重构的负担.我维护内部类的封装:内部类的private方法和字段不能从外部类访问,即使它们可以.那么,内部类的要点是将其范围缩小到仅包含类.这样,如果以后内部类可以在其他地方重用,它几乎不需要工作(以及非static内部类的大量工作)将其移动到自己的文件中.
以上是否是您的风格将影响以下放弃或保留private周围方法/字段的原因.
丢弃的原因private是:
反对的原因private是:
private充当文档:外部类不应使用这些方法private保留,则可以更容易地将内部类提升为自己的文件private被删除,public内部类和private内部类有两种样式:程序员可以考虑更多private删除了内部类public,那么突然有权访问外部文件的每个人都可以访问内部类的私有数据鉴于上述风格,我认为反对下跌的理由更强.