улучшение кода в OO php - PullRequest
       12

улучшение кода в OO php

2 голосов
/ 25 марта 2011

Я использую php OO для своего проекта.У меня есть много семейств в моем приложении около 7. Поэтому я должен использовать переключатель и делать это в каждом файле, где мне нужно проверить семью.Так что я чувствую, что это влияет на производительность.Так есть ли способ, чтобы я мог устранить эти случаи переключения и использовать некоторые шаблоны проектирования или что-то в этом роде.Настоящая идея состоит в том, чтобы иметь отдельную кодовую базу для каждой семьи, которая меня не устраивает полностью.Поэтому ищем разные варианты решения этой проблемы.

Ответы [ 2 ]

3 голосов
/ 25 марта 2011

Я могу лишь процитировать Мартина Фаулера из его книги «Рефакторинг: улучшение дизайна существующего кода».

Переключение операторов

Один из самых очевидных симптомов объектно-ориентированный код является его сравнительное отсутствие переключателя (или корпуса) заявления. Проблема с выключателем заявления по сути то дублирования. Часто вы найдете то же самое Переключатель заявление разбросано о Программа в разных местах. если ты добавьте новый пункт к коммутатору, вы нужно найти все эти переключатели, заявления и изменить их. объектно-ориентированное понятие полиморфизм дает вам элегантный способ чтобы справиться с этой проблемой.

В большинстве случаев вы видите оператор переключения Вы должны рассмотреть полиморфизм. вопрос, где полиморфизм должен происходят. Часто оператор switch включает код типа. Вы хотите метод или класс, который содержит тип кодовое значение Так что используйте метод извлечения, чтобы извлечь оператор переключения, а затем Переместите метод, чтобы получить его в классе где полиморфизм нужен. В этот момент вы должны решить, заменить код типа подклассами или заменить код типа на Государство / Стратегия. Когда вы настроили структуру наследования, вы можете использовать Заменить Условное на Полиморфизм.

Подумайте о покупке и чтении этой книги, это одна из самых ценных работ, которые я читал.

1 голос
/ 25 марта 2011

Этот шаблон будет Фактор, условный с полиморфизмом .

Идея состоит в том, чтобы превратить эти различные семейные типы в собственные объекты. Связанная статья взята из книги Мартина Фаулера Рефакторинг: улучшение дизайна существующего кода , который уже цитировался в этом другом ответе. На самом деле на сайте, на который ведут ссылки, содержится все содержимое книги.

Дополнительную информацию можно найти на http://www.refactoring.com/

...