Skip to content

Epic issue: Создание controller #114

@Shtramak

Description

@Shtramak
  1. Добавить в пакет sqlcmd пакет controller

  2. В пакете controller добавить класс MainController

  3. У MainController должен быть конструктор, который на вход принимает абстракции/интерфейсы View и DatabaseManager

  4. В классе MainController реализовать приватный метод void connectToDb(), который будет удовлетворять следующим Userstories:

[Подключение к базе] Я как ЮЗЕР хочу подключиться к существующей базе данных и вносить в нее правки

В коде контроллера использовать только абстракции View и DatabaseManager! Никаких реализаций!

а) [успешно подключились] я вижу приветствие от программы -> я ввожу имя базы, юзер, пароль -> я вижу сообщение что все ок (подключение успешно) -> PROFIT
б) [неправильный пароль] я вижу приветствие от программы -> я ввожу имя базы, юзер, пароль (не верный) -> я вижу сообщение, что пароль не правильный -> я вижу поле для повторного ввода пароля -> я ввожу его (правильный) -> подключение успешно -> ПРОФИТ
в) [несуществующая база] приветствие -> ввожу имя несуществующей базы c какими-то логином и паролем -> вижу что базы не существует -> повторное поле ввода -> ввожу все правильно -> подключился
г) [несуществующий пользователь]

  1. В класс MainController добавить метод public void run() из которого будет вызываться метод connectToDb()

  2. В пакете controller добавить класс Main, который будет точкой входа проекта, то есть должен содержать метод public static void main()

  3. В методе main():
    а) создать объекты-реализации интерфейсов View и DatabaseManager
    б) создать объект MainController и передать в его конструтор объекты-реализации View и DatabaseManager
    в) у созданного объекта MainController вызвать метод run()

  4. Убедиться, что приложение удовлетворяет требованиям описанным Userstories в п.4

Поздравляю! Только, что в своем проекте ты применил один из важнейших принципов ООП - DIP (Dependency Inversion Principle). Обязательно почитай о нем и разберись. Вот тебе ссылка на википедию :)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions