Java编码风格相关问题

时间:2019-03-14 10:11:37

标签: java java-8 coding-style

您好,关于以下两个问题,我需要一些意见

1>这是我作为请求输入收到的以下对象

public class CreatePaymentRequestDto {
    long insuranceId; 
    int annualCalculationYear; 
    int annualCalculationTotal; 
    int annualPayment; //
    int oneTimePayment;
    int manualChangePayment;
    boolean createRefund;
}

但是在我的服务中传输它时,我希望其他字段保持完整,除了insuranceId本身必须是Insurance对象本身..那将是一种好的编码风格,而不是像下面这样创建另一个DTO

public class CreatePaymentDto {
    Insurance insurance; 
    int annualCalculationYear; 
    int annualCalculationTotal; 
    int annualPayment; //
    int oneTimePayment;
    int manualChangePayment;
    boolean createRefund;
}

2>第二个问题是关于服务接口的。

如果我们有一个Main服务类和其他具有单个项目的服务类,则其中很少几个是该Main服务类的子类,而其他几个提供不同的服务..在这些服务之间创建接口是一种好的设计实践吗?一个项目中提供服务类。.问题在于,何时创建接口是一个好主意?

谢谢

1 个答案:

答案 0 :(得分:0)

为您描述的目的而具有两个类不一定是不好的。不用使事情复杂化,您可以使用两个类,这些类的名称表明它们的存在目的,一个类指示它是一个请求,另一个指示它是一个传输对象。它还将允许您独立更改内部设计和请求。

我不确定我是否完全了解有关服务类接口的第二部分。就个人而言,在决定创建界面时,我使用一些简单的准则:

1:使用界面抽象行为或功能

2:这种行为是否有所不同。

3:此接口是否用作合同

示例:考虑写入数据的行为。让我们定义一个接口

interface DataWriter {
 void write()
}

现在,您可以定义此操作的一个或多个实现,以根据要求指定多种行为。

如果您永远不需要多种行为,则可能不需要界面。

如果您正在设计可通信的类,并且有多个开发人员正在使用它们,那么拥有一个接口就可以充当通信合同,从而使事情变得更容易。

如果您认为此答案有用,请记住要投票,谢谢!