java - 代表许多可以增长的独特类别
问题描述
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
并提供给客户可用的选项?我应该使用数据结构还是某些类层次结构,因为类型列表可能会在以后增长并且具有诸如可用超额集和利率/利率之类的属性?
解决方案
推荐阅读
- wordpress - 如何在自定义 PHP 文件中使用选定的 WP 函数?
- ios - 有没有办法通过 XCUITest 在 iOS 中模拟 Web 视图?
- ruby-on-rails - 如何将数组作为绑定变量传递给 Rails/ActiveRecord 原始 SQL 查询?
- python - 本地机器和AWS之间的多处理?
- microsoft-graph-api - Microsoft 教育 - 学校数据同步 (SDS) 到 Microsoft Graph 映射
- stripe-payments - 将应用程序投入生产后,是否需要托管 Stripe\Braintree 支付网关的后端服务器?
- php - 使用 php 和 ajax 发布 json 数组 - 问题
- java - 单例的这两种实现有什么区别?
- javascript - 如何让 Vuex 与使用数组的复选框配合得很好?
- html - 如何添加边框