data class SpecialTypeContract(
val value: BigDecimal,
val excess: BigDecimal
)
data class CustomerContract(
val name: String,
val value: BigDecimal,
val specialType: SpecialTypeContract?,
val itemContracts: List<ItemContract>
)
data class ItemContract(
val name: String,
val value: BigDecimal,
val excess: BigDecimal
)
Category | options
TypeA | Special
TypeB | item and special
TypeC | item
TypeD | item
在我的应用程序中,我允许客户购买
CustomerContract
它可以收集
ItemContract
和/或
SpecialTypeContract
.
我支持很多种类,这可以发展。对于每个类别,我定义它们是否可用
或作为
项目合同
.
对于上述每个类别,都有一组
excess
可供选择的选项,即300、800、1000。类别也可以有
rate/interest
级别,例如0.1、2.1等。
我的问题是,有没有一种设计模式可以用来表示类别和契约之间的这种关系
Special
和
Item
?
我应该怎样表现这些
categories types A...D
并为客户提供哪些选择?我应该使用数据结构还是类层次结构,因为类型列表可能会在以后增长,并且具有诸如可用超额集和利率/利息之类的属性?