-
BankProductInterface
(интерфейс):- Определяет основные методы, общие для всех банковских продуктов
-
CardInterface
(интерфейс):- Наследуется от
BankProductInterface
- Добавляет методы для работы с картами, такие как списание денег
- Наследуется от
-
CreditCardInterface
(интерфейс):- Наследуется от
BankProductInterface
иCardInterface
- Добавляет методы, специфичные для кредитных карт, такие как получение процентной ставки и текущей задолженности
- Наследуется от
-
DepositInterface
(интерфейс):- Наследуется от
BankProductInterface
- Добавляет методы, специфичные для вкладов, такие как закрытие вклада
- Наследуется от
-
AbstractBankProduct
(абстрактный класс):- Содержит базовую реализацию общих методов для всех продуктов банка
- Реализует
BankProductInterface
, предоставляющий основные методы для банковского продукта
-
DebitCard
(класс):- Реализует
AbstractBankProduct
иCardInterface
- Представляет дебетовую карту, включая специфическую логику для списания денег
- Реализует
-
CreditCard
(класс):- Реализует
AbstractBankProduct
иCreditCardInterface
- Представляет кредитную карту, включая специфическую логику для получения процентной ставки и задолженности
- Реализует
-
Deposit
(класс):- Реализует
AbstractBankProduct
иDepositInterface
- Представляет банковский вклад, включая специфическую логику для закрытия вклада
- Реализует
-
ValidateHelper
(класс):- Предоставляет вспомогательные методы для валидации значений, используемых в банковских продуктах
-
BankingTests
(класс):- Содержит набор юнит-тестов, которые проверяют корректность функциональности каждого класса продукта
src
├── main
│ └── java
│ └── org
│ └── example
│ └── banking
│ ├── abstracts
│ │ └── AbstractBankProduct.java
│ ├── helpers
│ │ └── ValidateHelper.java
│ ├── interfaces
│ │ ├── BankProductInterface.java
│ │ ├── CardInterface.java
│ │ ├── CreditCardInterface.java
│ │ └── DepositInterface.java
│ └── products
│ ├── CreditCard.java
│ ├── DebitCard.java
│ └── Deposit.java
└── test
└── java
└── org
└── example
└── banking
└── BankingTests.java
Java 19
|JUnit 5
mvn test -Dgroups=positive
mvn test -Dgroups=negative