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
的集合。
我支持许多类别A ... D,并且这个类别可能会增加。对于每个类别,我定义它们以SpecialTypeContract
还是ItemContract
的形式提供。
对于上述每个类别,都有一组excess
选项可供选择,例如300、800、1000。类别也可以具有rate/interest
级,例如0.1、2.1等
我的问题是,是否可以使用一种设计模式来表示类别与我拥有的Special
和Item
合同之间的关系?
我应该如何代表这些categories types A...D
并为客户提供可用的选项?我应该使用数据结构或某些类层次结构,因为类型列表可以在以后增加,并具有诸如可用的超额集和利率/利率之类的属性?