Sane Design Альтернатива - PullRequest
       5

Sane Design Альтернатива

0 голосов
/ 11 апреля 2009

У меня есть (дизайн) приложение, которое в основном работает так:

класс Main, класс BusinessLogic, класс UserInterface

BusinessLogic и UserInterface спроектированы так, чтобы быть похожими на библиотеки - не разрабатывались постоянно, а использовались разработчиком, скажем, в классе Main.

Конструктор BusinessLogic также создает экземпляр UserInterface, который отображает текстовое меню и принимает ввод с терминала. На основе этого ввода он выполнит соответствующую функциональность, вызвав соответствующий метод соответствующего объекта BusinessLogic.

Однако это циклическая ссылка, и у UserInterface нет очевидного способа вызвать соответствующий объект BusinessLogic (без жестко заданного идентификатора объекта BusinessLogic, но это даже хуже практики!).

Мне это кажется логичным, но трудно реализовать в терминах программирования.

Одна альтернатива, которую я рассмотрел, заключается в том, чтобы пользовательский интерфейс возвращал входные данные конструктору BusinessLogic, но я не хочу, чтобы BusinessLogic обрабатывал входной анализ, пользовательский интерфейс кажется разумным местом для этого.

Есть идеи?

Ответы [ 2 ]

2 голосов
/ 11 апреля 2009

Вы должны попробовать шаблон Model-View-Controller . В вашем случае модель и контроллер могут оказаться одинаковыми. Изолировать ваши классы друг от друга через интерфейсы, а затем создавать их вне (от Main в вашем примере) упростит жизнь всем.

0 голосов
/ 11 апреля 2009

Похоже, вы можете использовать шаблон Model-View-Controller.

Кроме того, если вы хотите уменьшить зависимости экземпляров между частями, вы можете рассмотреть возможность использования зависимостей-инъекций , как с Spring .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...