Как изменить метод, который выполняет несколько этапов (зависит друг от друга)? - PullRequest
4 голосов
/ 29 марта 2010

Каков наилучший способ рефакторинга метода, в котором много шагов? Например, метод, который устанавливает некоторые объекты, создает несколько объектов (например, таблицу базы данных) и т. Д. - в основном один метод, который выполняет набор связанных шагов.

Будет ли это лучше всего соответствовать шаблону проектирования команд?

Спасибо

Ответы [ 3 ]

3 голосов
/ 29 марта 2010

Ну, нет общего ответа на это. Но о вашем примере создания и настройки объектов смотрите в Pattern Builder и Factory Patten . Шаблон команды полезен, когда у вас есть различные возможные действия (например, сообщения, переданные через очередь).

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

2 голосов
/ 29 марта 2010

Шаблон строителя - соответствующий шаблон.

0 голосов
/ 29 марта 2010

Другими способами рефакторинга, помимо уже упомянутых, может быть использование шаблона проектирования Template Template, позволяющего извлекать различные детали и, возможно, обмениваться ими при необходимости в будущем. Вы также можете использовать даже шаблон State, когда вы хотите изменить эти различные части метода.

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