/php-bank-account-simulator

Симулятор системы управления банковскими счетами

Primary LanguagePHP

Симулятор системы управления банковским счётом

Система имеет 3 типа счетов:

  • Обычный - доступно пополнение и снятие без комиссии
  • Дебетовый - доступно пополнение и снятие с комиссией
  • Депозитный - доступно пополнение и снятие не менее чем через месяц после последнего пополнения

Со всеми счетами можно производить следующие операции:

  • Пополнять
  • Снимать средства
  • Получать баланс счёта

Этот список будет дополняться по мере разработки

Технические детали

Система реализована на языке программирования PHP, выполняется в консольной среде.

Программа разделена на компоненты:

  • index.php - основной скрипт работы программы, собирающий все компоненты воедино и содержащий бизнес-логику
  • FiniteStateMachine - машина состояний, используется для различных действий для одной и той же команды при разных состояниях программы. Также включает хранилище данных, используемое в момент выполнения программы для общения между компонентами
  • Dispatcher - регистрирует различные обработчики, выполняет ту команду из зарегистрированных, которая подходит под все фильтры и совпадает с введенноё пользователем
  • Command - хранит исходный текст, введённый пользователем и разбитую его версию, для передачи в функции логики
  • BankAccountFactory - создаёт необходимый счёт исходя из зарегистрированных вариантов и ввода пользователя
  • exceptions - хранит все исключения, которые могут возникнуть при работе с программой
  • accounts - хранит все реализованные типы счетов, наследуемые от BankAccount