Java 在值对象中存储常量
此外,我还有一个如下形式的VO对象Java 在值对象中存储常量,java,oop,javabeans,Java,Oop,Javabeans,此外,我还有一个如下形式的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 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";
}
我想知道上面提到的是一个好的实践,还是将常量移到一个单独的类中是有意义的。任何建议都将不胜感激。除非你能说,否则没有确切的答案
- JDK在接口和类中有常量
- 通常避免创建一个仅用于保存常量的接口或类
- 测试代码不必像生产代码那样是最佳实践。有时做一些意想不到的事情会使测试变得很好
- 数据驱动测试的结构通常与常规代码不同。也就是说,我怀疑您根本不需要定义这些常量,只需在测试中使用它们即可
- JDK在接口和类中有常量
- 通常避免创建一个仅用于保存常量的接口或类
- 测试代码不必像生产代码那样是最佳实践。有时做一些意想不到的事情会使测试变得很好
- 数据驱动测试的结构通常与常规代码不同。也就是说,我怀疑您根本不需要定义这些常量,只需在测试中使用它们即可
- 除了你可以说,没有明确的答案
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";
}
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;
}
在这个假设的示例中,常量(DEFAULT\u PRODUCT\u CATEGORY
)与PRODUCT类中的CATEGORY字段密切相关。因此,在该类中包含该常量可能是有意义的。也可能有人认为我们需要一个包含该常量的CATEGORY类(或枚举)
另一方面,这是没有意义的:
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";
}
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)太泛化了,它并不特定于产品类可能表示的内容。第二个常量(PI_近似值)更糟糕,因为实际上没有理由有这样的东西
因此,除了回答以下问题的指南外,没有其他指南:将其放在那里有意义吗?
常量意味着代表某人或某物。因此,这些常量需要以一种合理的方式分组,靠近使用它们的对象。类和接口不仅仅是我们向它们扔东西的打开的盒子
软件工程的基本挑战是设计有意义的东西,而有意义的东西是针对手头的问题和情况的
我想知道上述做法是否是一种良好的做法,或者是否会产生积极的影响
将常量移动到单独的类中
这取决于这些常量是否有意义靠近类
例如,以下可以论证为有意义:
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";
}
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;
}
在这个假设的示例中,常量(DEFAULT\u PRODUCT\u CATEGORY
)与PRODUCT类中的CATEGORY字段密切相关。因此,在该类中包含该常量可能是有意义的。也可能有人认为我们需要一个包含该常量的CATEGORY类(或枚举)
另一方面,这是没有意义的:
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";
}
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)太泛化了,它并不特定于产品类可能表示的内容。第二个常量(PI_近似值)更糟糕,因为实际上没有理由有这样的东西
因此,除了回答以下问题的指南外,没有其他指南:将其放在那里有意义吗?
常量意味着代表某人或某物。因此,这些常量需要以一种合理的方式分组,靠近使用它们的对象。类和接口不仅仅是我们向它们扔东西的打开的盒子
软件工程的基本挑战是设计有意义的东西。有意义的东西是针对当前的问题和情况的。为什么要进行投票?需要更多信息吗?如果需要,请发表评论。投票结束是因为它主要基于意见。你问100%的开发者,你是going想得到很多不同的答案:-)谢谢你的评论。在这个问题上没有固定的标准或OOP指南吗?@KodeSeeker-看看为什么会有一个closevote?需要更多的信息吗?如果需要,请发表评论。它被投票关闭是因为它主要是基于意见的。你问100%的开发者,你会得到很多d不同答案:-)感谢您的评论..对此没有设置标准或OOP指导方针?@Kodeseker-请检查感谢答案。TestVO是个坏名字。我应该带着
DummyVO
一起去。很抱歉,噪音。谢谢你的回答。TestVO是个坏名字。我应该带着DummyVO
。很抱歉,噪音太大了。有道理,谢谢,有道理,谢谢。