我还有一个以下形式的VO对象
public class DummyVO {
private int id;
private String message;
//getters and setters.
//set of constants that describe the DummyVO.
public static final String MESSAGE_CONST1 = "A-> Const value for message";
public static final String MESSAGE_CONST2 = "B-> Const value for message";
}
我想知道上述是否是好的做法,或者将常量移到一个单独的类中是否有意义。任何建议将不胜感激。
答案 0 :(得分:3)
除了你可以说
之外,没有明确的答案此处没有设定标准或OOP指南吗?
无AFAIK。指南应该是以您认为合理的方式布置课程。
公共类TestVO {
测试值对象通常放在测试区域中。值得注意的是
答案 1 :(得分:3)
我想知道上述是否是良好做法或是否有效 感觉将常量移动到一个单独的类
这取决于常量是否有意义以保持接近该类。
例如,以下可以被认为有意义:
public class Product{
private int id;
private String category = DEFAULT_PRODUCT_CATEGORY;
// setters and getters, constructors and what not
public static final String DEFAULT_PRODUCT_CATEGORY = "Uncategorized";
}
在此假设示例中,常量(DEFAULT_PRODUCT_CATEGORY
)与Product类中的category字段紧密相关。因此,在该课程中拥有该常量可能是有意义的。也可以说我们需要一个包含该常量的Category类(或枚举)。
另一方面,这没有意义:
public class Product{
private int id;
// setters and getters, constructors and what not
public static final String ERROR_MESSAGE = "some error";
public static final float PI_APPROXIMATION = 3.14159;
}
在这个(尽管是夸大的)示例中,一个常量(ERROR_MESSAGE)过于通用,它并不特定于Product类可能表示的内容。第二个常数(PI_APPROXIMATION)更糟糕,因为没有理由有这样的事情。
因此,除了那些回答以下问题的指南之外,没有其他指南:将它放在那里是否有意义?
常量意味着为某人或某事代表。因此,这些常量需要以一种有意义的方式与使用它们的事物分组。类和接口不仅仅是我们向它们抛出的开放框。
软件工程的基本挑战在于设计有意义的事物。有意义的是针对问题和手头的情况。