Какие структуры ООП хорошо работают в приложении, которое имеет много различных режимов? - PullRequest
1 голос
/ 21 октября 2010

Что я могу сделать, чтобы структурировать свое приложение, чтобы код оставался управляемым по мере его увеличения? Я создаю приложение, которое будет находиться в определенном состоянии, которое будет меняться в зависимости от того, как пользователь взаимодействует с ним, и будет много разных состояний, в которых может находиться приложение. Я пытался искать учебники / ресурсы, но что я find только охватывает приложение с несколькими режимами, в то время как у моего будет много разных поведений.

Например, вы можете щелкнуть объект типа A или B, поэтому для каждого из них может быть свое поведение. Если вы удерживаете мышь и пытаетесь ее перетащить, они тоже будут вести себя по-другому. Но если вы не удерживали мышь, это означает, что это не перетаскивание. Знание того, в какой режим переходить, когда происходит событие X, когда вы находитесь в состоянии Y, сбивает меня с толку, потому что я не хочу иметь массивный оператор switch, который обрабатывает все.

1 Ответ

2 голосов
/ 21 октября 2010

Непонятно, что именно вы подразумеваете под «разными режимами».

Многие люди тратят массу времени на придумывание абстрактных структур, поведенческих и организационных моделей для кода. Другим термином для этих понятий является шаблон проектирования . Помимо чистого форматирования и документирования вашего кода, эти концепции помогут вам сохранить ваш код логически и функционально чистым и работоспособным .

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

РЕДАКТИРОВАТЬ: ответ на ваши изменения.

Для разработки графического интерфейса в принципе вы хотите добиться разделения кода представления, кода поведения и кода состояния. Некоторые шаблоны подходят для этой цели естественным образом, например, модель Model-View-Controller (MVC).

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