https://github.com/araskolnikoff/banking-products-architecture
Архитектура «BankingProductsArchitecture»
https://github.com/araskolnikoff/banking-products-architecture
java19 junit5 open-source
Last synced: about 1 month ago
JSON representation
Архитектура «BankingProductsArchitecture»
- Host: GitHub
- URL: https://github.com/araskolnikoff/banking-products-architecture
- Owner: ARaskolnikoff
- Created: 2023-07-16T23:05:16.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2023-07-17T00:02:06.000Z (almost 3 years ago)
- Last Synced: 2025-01-28T23:51:53.559Z (over 1 year ago)
- Topics: java19, junit5, open-source
- Language: Java
- Homepage:
- Size: 19.5 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Архитектура _«BankingProductsArchitecture»_
### Описание архитектуры банковских продуктов
- `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`
## Запуск unit-тестов через maven-команды
- ### Запуск позитивных unit-тестов
```
mvn test -Dgroups=positive
```
- ### Запуск негативных unit-тестов
```
mvn test -Dgroups=negative
```