Читать «Рефакторинг с использованием шаблонов» онлайн - страница 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)