首页 > 解决方案 > 代表许多可以增长的独特类别

问题描述

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并提供给客户可用的选项?我应该使用数据结构还是某些类层次结构,因为类型列表可能会在以后增长并且具有诸如可用超额集和利率/利率之类的属性?

标签: javainheritancedesign-patternskotlinabstraction

解决方案


推荐阅读