2014-10-01 39 views
0

如果我有这样的类,它基本上只是一个包对象,它是否违背了标准以遵循包命名约定?我想我记得在OCJP学习指南中读到这个。看起来合乎逻辑,但我的同事把这个说出来了,我不确定在这方面是否有任何官方的立场。如果我有一个名为'exceptions'的类,它只有静态类,这是否违反了Java标准?

public class exceptions { 

    public static class TemplateRenderException extends Exception { 
     public TemplateRenderException(String message, Throwable e) { 
      super(message, e); 
     } 
    } 

    public static class UnmarshallingException extends Exception { 
     public UnmarshallingException(String message, Throwable e) { 
      super(message, e); 
     } 
    } 
} 

回答

1

您可以阅读Oracle在此here上的立场。总结一下,如果你想对一系列类进行分组,并且不需要使用嵌套类的私有方法来嵌套静态类,那么可以参考Why use nested classes部分讨论如何使用嵌套类封装和可读性的原因。

没有关于命名标准的发言权,但我的理解是这是不正确的,作为一类应该总是用大写字母

+0

好的谢谢,所以外部类应该基本上被称为例外。 – JasonG 2014-10-01 19:21:22

2

如果我有类这样的,这是本质上只是一个包装对象,它是打破标准有它遵循包命名约定?

是的。它不是一个包,它是一个类,所以它应该遵循类命名约定......或者更好,只是把它变成一个包而已,因为它听起来像你想要的那样动作就像一个包。那就是如果你真的认为这样做一个聚类就是一个好主意,而不是把它们放在它们最相关的包中 - 后者就是我个人的做法。

+0

这些的确是包装他们相关的地方开始。我的目的是通过将这个组合对象的所有异常放在相关包中的一个文件中来简化代码。这很大程度上借鉴了scala的简洁灵活的文件和包装规则,以创建一个更简单的项目。 – JasonG 2014-10-01 18:29:49

+2

@JasonG:所有*你保存的是有几个文件 - 代价是有一个类看起来像一个包(但会表现得像一个类)。你真的有*那很多异常类,他们导致一个问题?破坏公约的弊端似乎不太可能是值得怀疑的好处。 – 2014-10-01 18:35:43

+0

@JasonG恕我直言,有很多简单的文件,使每一个简单。 – 2014-10-01 19:18:57

相关问题