Я изучаю шаблон 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, если вы предпочитаетеМожно написать пример кода