представляя много уникальных категорий, которые могут расти - PullRequest
0 голосов
/ 17 сентября 2018
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 и предоставить какие варианты они доступны для клиентов?Должен ли я использовать структуру данных или некоторую иерархию классов, учитывая, что список типов может увеличиться позже и иметь такие свойства, как доступный набор избытка и процент / процент?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...