Реализация шаблона ECB (Entity, Control, Boundary) - PullRequest
0 голосов
/ 26 мая 2018

Я изучаю шаблон ECB .Я понял концепцию этого шаблона, но я не уверен в его реализации.Я собираюсь написать простой пример: мне нужно программное обеспечение, которое управляет клиентами магазина.Клиенты хранятся в общей базе данных.В соответствии с шаблоном ECB мне нужно иметь следующие классы

1) Customer , который представляет сущность с ее атрибутами (имя, фамилия, дата рождения и т. Д.).)

2) CustomerWindow , представляющее границу, с некоторыми метками, текстовыми полями, кнопками и таблицей для отображения клиентов

3) CustomerController , который представляет логику с некоторыми методами (вставка, удаление и т. Д.)

Я должен также добавить CustomerDAO (реализует интерфейс, но мой вопрос не о DAO), который управляет доступом к базе данных.Я хотел бы знать, как эти классы взаимодействуют друг с другом.Например, предположим, что вставка нового клиента, я предполагаю, что они взаимодействуют следующим образом:

1) CustomerWindow"собирает" данные, записанные в textFields (name, фамилия ecc) и вызывает метод insert (String ....) CustomerController .

2) CustomerController проверяет, все ли данные в порядке (например пустые поля или ошибка формата).Если все в порядке, создайте нового Customer с этими данными и вызовите вставку метода (Customer c) из CustomerDAO .

3) CustomerDao предоставить для вставки клиента в базу данных

Очевидно, что некоторые из этих операций могут вызвать некоторые исключения, но я думаю, что это не важно для этого примера, если предположить, что все вставленные данные действительны. Так работает шаблон ECB?Если нет, то как это работает?

У меня последний вопрос: некоторые из этих классов должны быть статическими или мне нужно объявить экземпляр каждого из них?Например, я думаю, что CustomerController и Customer DAO могут быть статическими.CustomeWindows вызывает метод CustomerController.insert (...), который в конечном итоге вызывает метод CustomerDAO.insert (...) (поэтому мне не нужно создавать новый CustomerController () или новый CustomerDAO (). Это правильно?

Надеюсь, мой английский довольно понятен. Пожалуйста, скажите мне, если я что-то не поняла. Спасибо всем;)

Ps, если вы предпочитаетеМожно написать пример кода

...