繁体   English   中英

将常量存储在值对象中

Storing constants in value objects [closed]

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我还有以下形式的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";
}

我想知道上面的做法是否是好的做法,还是将常量移到单独的类中是否有意义。 任何意见,将不胜感激。

2 个回复

没有明确的答案,除了你可以说

  • JDK在接口和类中具有常量。
  • 通常避免IMHO创建仅保留常量的接口或类。

对此没有设置标准或OOP准则吗?

无AFAIK。 指南应该以您认为合理的方式来布置您的班级。

公共课程TestVO {

测试值对象通常放置在您的测试区域中。 值得一提的是

  • 测试代码不必像生产代码那样具有最佳实践。 有时做一些意想不到的事情是一个很好的测试。
  • 数据驱动测试的结构通常与常规代码不同。 即我怀疑您根本不需要定义这些常量,只需在测试中使用它们即可。

我想知道上面的做法是好的做法还是将常量移到单独的类中是否有意义

这取决于常数是否有意义贴近类。

例如, 可以说以下几点有意义:

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)甚至更糟,因为实际上没有理由拥有这种东西。

因此,除了回答以下问题的指南外,没有其他指南:将其放在那里是否有意义?

常数是为了代表某人某物 因此,必须以一种有意义的方式将这些常量分组到与使用它们的事物接近的地方。 类和接口不仅仅是打开的盒子,我们向它们扔东西。

软件工程的根本挑战是设计有意义的东西。 有意义的是针对当前的问题和情况。

2 如何从对象中获取常量断言值

在这里,由于插值,MyType 变成了string类型而不是val1-test | val2-test val1-test | val2-test类型。 我应该怎么做才能在不重复值的情况下获得所需的输入? ...

4 你能在 Django 中存储一个常量全局对象吗?

我正在开发一个使用地理空间数据的小网页。 我使用 GeoPandas 和 Shapely 在 Python 中进行了初步分析,我正在尝试从中构建一个网页。 问题是,在使用 Django 时,我似乎找不到一种方法来将形状文件存储为常量对象。 每次请求对 shapefile 执行操作时,我都需要从源加载 ...

6 在Python中的哪里存储常量

我目前正在从事一个项目,在该项目中,我有大量的全局常量要硬编码在我的代码中。 该项目是用Python编写的。 众所周知,访问全局变量时,Python的性能会大大下降。 我可以将那些只在一种方法中使用的常量移动到使用它们的方法的本地范围内,但这会降低可读性。 然后,我仍然会有一些用于多 ...

7 在Java中存储常量

我有一个字符表,每个字符的int值都会受到影响。 (我将使用此表来计算条形码检查数字)。 我想将此表存储为常量,请问在Java中最好的方法是什么? (枚举,哈希图...) 任何帮助将不胜感激。 ...

2015-06-04 11:06:38 2 76   java
8 将常量存储在Rails中

我来自Java背景。 我想知道是否有一种方法可以存储常量值。 针对我的问题,我想知道是否可以有类似以下内容的东西: Provider类存储所有静态常量的位置。 另外,这是在Ruby on Rails中进行操作的正确方法吗? 额外信息:我尝试了以上方法 但是它给出了 ...

10 有没有办法在CUDA中访问常量存储库的值

我一直在尝试调试使用嵌入式PTX程序集的cuda程序。 具体来说,我正在指令级别进行调试,并试图确定指令参数的值。 有时,反汇编包含对常量内存的引用。 我正在尝试让gdb打印此常量内存的值,但是没有找到任何显示该操作方法的文档。 例如,反汇编包括IADD R0,R0,c [0x0] [0x148] ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM