Читать «Рефакторинг с использованием шаблонов» онлайн - страница 215
Джошуа Кериевски
Replace Type Code with Subclasses 159,162, 179
Roberts, Don 27,28, 50,353, 391
Rufer, Russ 7
s
Shotgun Surgery 73
Singleton 60,62,144,335
Solomon, Maynard 63
Solution Spraw 69, 73,97
Solution Sprawl 296
State 62,74,198
Strategy 33,62,159,177
Substitute Algorithm 48, 75
Switch Statements 69,74
T
Template Method 37,60,62
Thomases, Ken 29
Tiscioni, Jason 54
Type-Safe Enum 326
u
Unify Interfaces 384
Unify Interfaces with Adapter 61,68,69,70, 73,75,237,283
V
Visitor 60, 62, 75,351,359,363
Vlissides, John 27,29,58
w
Weinberg, Jerry 64
Woolf, Bobby 6,25,341
Y
Yoder, Joseph 34
Научно-популярное издание
Джошуа Кериевски
Рефакторинг с использованием шаблонов
Литературный редактор Верстка Художественные редакторы Корректор
Т.П. Кайгородова
М.А. Смолина
Т.А. Тараброва, С.А. Чернокозинский
ЛА. Гордиенко
Издательский дом “Вильямс” 101509, г. Москва, ул. Лесная, д. 43, стр. 1
Подписано в печать 21.08.2006. Формат 70x100/16.
Гарнитура Petersburg. Печать офсетная.
Усл. печ. л. 32,25. Уч.-изд. л. 17,00.
Тираж 2000 экз. Заказ № 2431.
Отпечатано по технологии CtP в ОАО “Печатный двор” им. А. М. Горького 197110, Санкт-Петербург, Чкаловский пр., 15.
Признаки кода, требующего применения рефакторинга
Признак | Рефакторинг |
Alternative Classes with Different Interfaces (Альтернативные классы с различными интерфейсами, стр. 73) [15] | Unify Interfaces with Adapter (стр. 283) |
Combinatorial Explosion (Комбинаторный взрыв, стр. 75) | Replace Implicit Language with Interpreter (стр. 307) |
Conditional Complexity (Сложность условий, стр. 71) | Replace Conditional Logic with Strategy (стр. 158)Move Embellishment to Decorator (стр. 174)Replace State-Altering Conditionals with State (стр. 197)Introduce Null Object (стр. 340) |
Duplicated Code (Повторяющийся код. стр. 69) [15] | Form Template Method (стр. 239)Introduce Polymorphic Creation with Factory Method(стр. 116)Chain Constructors (стр. 380)Replace One/Many Distinctions with Composite (стр. 258)Extract Composite (стр. 248)Unify Interfaces with Adapter (стр. 283)Introduce Null Object (стр. 340) |
Indecent Exposure (Неприличная демонстрация, стр. 72) | Encapsulate Classes with Factory (стр. 108) |
Large Class (Большой класс, стр. 74) [15] | Replace Conditional Dispatcher with Command (стр. 224)Replace State-Altering Conditionals with State (стр. 197)Replace Implicit Language with Interpreter (стр. 307) |
Lazy Class (Ленивый класс, стр. 74) [15] | Inline Singleton (стр. 143) |
Long Method (Длинный метод, стр. 70) [15] | Compose Method (стр. 152)Move Accumulation to Collecting Parameter (стр. 352)Replace Conditional Dispatcher with Command (стр. 224)Move Accumulation to Visitor (стр. 359)Replace Conditional Logic with Strategy (стр. 158) |
Oddball Solution (Оригинальное решение, стр. 75) | Unify Interfaces with Adapter (стр. 283) |
Primitive Obsession (Зацикленность на примитивах, стр. 71) [15] | Replace Type Code with Class (стр. 324)Replace State-Altering Conditionals with State (стр. 197)Replace Conditional Logic with Strategy (стр. 158)Replace Implicit Tree with Composite (стр. 210)Replace Implicit Language with Interpreter (стр. 307)Move Embellishment to Decorator (стр. 174)Encapsulate Composite with Builder (стр. 124) |
Solution Sprawl (Расплывшееся решение, стр. 73) | Move Creation Knowledge to Factory (стр. 96) |
Switch Statements (Операторы выбора вариантов, стр. 74) [15] | Replace Conditional Dispatcher with Command (стр. 224) Move Accumulation to Visitor (стр. 359) |