gpt4 book ai didi

java - 对实体属性更改强制执行服务层业务规则,或者对客户端隐藏实体属性而不是服务?

转载 作者:行者123 更新时间:2023-12-04 07:07:05 25 4
gpt4 key购买 nike

假设我有一个类 Customer,它有一个属性 customerType。

我有另一个类叫做 SpecialContract,它有一个 Customer 和一些其他属性。

如果 customer.customerType == SPECIAL,则有一个 SpecialContract 引用了这个特定的 Customer。

现在我意识到这有点骗人,但我不想与客户保持关系 SpecialContract 有几个原因,其中一个原因是大部分时间与客户合作时,我们不需要加载 SpecialContracts 和与 SpecialContracts 相关的所有其他数据。但是,我总是想知道 Customer 是否有 SpecialContract,这是通过其 customerType 属性实现的。

好的,这是困难的部分。我不希望客户能够设置 customerType,因为这样做不会删除适用于客户的 SpecialContract,而这将是必需的。我宁愿强制客户端调用服务方法来删除 SpecialContract,这也会在一个事务中将 customerType 设置为 NOTSPECIAL。

如何向客户端隐藏 customerType setter,但仍将其公开给我的服务层类,该类将负责设置正确的值并删除 SpecialContract?我的服务类与 Customer 类不在同一个包中。

最佳答案

您可以创建一个 Interface那个Customer实现并传递此 Interface 的实例给客户。此 Interface不会暴露 contentType修改器给客户端。您的服务将处理成熟的Customer对象并可以使用 setContentType Class 中定义的修饰符.

关于java - 对实体属性更改强制执行服务层业务规则,或者对客户端隐藏实体属性而不是服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/973047/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com