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

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

#1楼 票数:3

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

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

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

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

公共课程TestVO {

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

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

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

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

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

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

  ask by seeker translate from so

未解决问题?本站智能推荐:

6回复

寻找在服务器端使Web框架更加面向对象的最佳方法

Web框架似乎总是远离良好的OO代码(在将代码和数据分组到一个对象中,从向该对象发送消息的角度进行思考等)。 主要问题似乎是bean模式的存在。 您可以使用bean模式(由于人们似乎不了解它们之间的区别,如今通常称为POJO)与数据库,Web服务和大多数其他事物进行交互。 因此,没有您
2回复

在jsp页面中调用bean方法

我有一个类可以创建一个bean,bean有很少的get和set方法(例如setId和getId,现在我在jsp页面中包含这个java文件,现在我的问题是如何转发bean返回的值到jsp文件? 请帮助。
1回复

在JAVA类中建模事件和预订-最佳设计方法

我对java很陌生,正在构建一个基本的旅游预订系统。 我有一个像这样的旅游班。 预订舱看起来像 现在,为了获取基于用户ID的所有保留,我在DOA类中有一个方法,该方法可以根据用户ID字段获取所有保留。 但是,如何获得预订的所有旅行信息? 是否应该使用TourModel类型在预订模
2回复

为什么在bean中创建受保护的属性被视为不好的做法?

我的意思是: 这只是一般性回答的一般情况。 现在第二个例子: 第二个例子也是不良做法的例子吗?
1回复

将多个值/结果集存储到Javabean中

JSP代码 Java豆 Servlet代码 检索代码 我允许我的用户设置他们想要搜索的内容(例如,用户名,电子邮件等)并输入他们的输入。 然后,在按下“提交”按钮后,他们将重定向到另一页面,并且该页面将显示他们搜索的内容。 但是,我当前面临的问题是如何将结果集/多个值存储到J
1回复

如何摆脱JavaBean对象列表中的重复值

我正在使用Java和数据库查询开发基于Web的系统。 我有一个bean类,表示数据库中一个表中的行 - RoadList。 这是班级的结构: 在我的例子中,最重要的部分是RoadList类的Driver driver属性 该系统的一个功能是为特定的驱动程序制作月度报告,并在表格中
2回复

使用Metawidget将对象与GUI中的值同步

我正在使用Metawidget自动查看/编辑GUI中对象的值。 我能够绑定对象的初始值,并在各自的GUI组件中查看它们。 但是,当我更改GUI中的值时,这些更改不会同步回对象。 这里或多或少都记录在这里 (已弃用)和此处 。 这是我的业务对象: 这是我的主要方法,其中配置了meta
1回复

如何将Jmeter响应数据转换为字节?如何将Byte值存储到CSV文件中?

我们的新要求是有脚本A,我们需要在两个不同的环境1和环境2上运行。 因此,我们需要将响应数据转换为Byte并存储到Csv文件中。 稍后,我们需要比较来自不同环境的两个字节的结果。 但是现在我们需要知道如何将Response数据转换为Byte并以字节值存储在一个文件中? 任何人都可以