Giter VIP home page Giter VIP logo

banking-products-architecture's Introduction

Архитектура «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

banking-products-architecture's People

Contributors

araskolnikoff avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.