代表许多可以增长的独特类别

时间:2018-09-17 12:11:36

标签: java inheritance design-patterns kotlin abstraction

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等

我的问题是,是否可以使用一种设计模式来表示类别与我拥有的SpecialItem合同之间的关系?

我应该如何代表这些categories types A...D并为客户提供可用的选项?我应该使用数据结构或某些类层次结构,因为类型列表可以在以后增加,并具有诸如可用的超额集和利率/利率之类的属性?

0 个答案:

没有答案