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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions