Я нашел этот фрагмент кода при просмотре других проектов, и мне было интересно узнать о преимуществах открытого интерфейса в java pojo.Почему вы должны использовать его, как показано в примере ниже.Рассмотренное ниже использование считается лучшей практикой?Есть ли уловка в использовании интерфейса, подобного этому?
@Data
@NoArgsConstructor
@Entity
@Table(name = "customer_mapping", schema = "billing")
public class CustomerMapping {
public interface createCustomerMapping {
}
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@JsonProperty("customerMappingId")
private Integer id;
@Column(length=10)
@NotNull(groups = { createCustomerMapping.class })
@NotEmpty(groups = { createCustomerMapping.class })
@Size(groups = { createCustomerMapping.class }, min = 4, max = 4)
private String issuerCode;
@Column(length=10)
@NotNull(groups = { createCustomerMapping.class })
@NotEmpty(groups = { createCustomerMapping.class })
private String offerCode;
@NotNull
private Long customerId;
@CreationTimestamp
private LocalDateTime createdTs;
private String createdBy;
@UpdateTimestamp
private LocalDateTime updatedTs;
private String updatedBy;
public CustomerMapping(String offerCode) {
this.offerCode = offerCode;
}
public CustomerMapping(String issuerCode, String offerCode) {
this.issuerCode = issuerCode;
this.offerCode = offerCode;
}
public CustomerMapping(String issuerCode, String offerCode, Long customerId) {
this.issuerCode = issuerCode;
this.offerCode = offerCode;
this.customerId = customerId;
}
}
Из того, что я знаю, интерфейс используется для определения контракта, поэтому я знаком с реализацией использования его через библиотеку кода или, еслидве команды должны сотрудничать.Но в приведенном выше примере мне неясно.