Refaktoryzacja
Poprawa projektu struktury klas i samych klas bez zmiany funkcjonalności.
Podstawowe kierunki refaktoryzacji:
- upraszczanie struktury
- zwiększanie elastyczności
- zmniejszanie zbyt dużych klas
- zmniejszanie zbyt długich metod
- unikanie klas podobnych do struktur (zbyt mało kodu)
- unikanie duplikowania (zasada once and only once - „raz i tylko raz”)
- unikanie konstrukcji „switch” i rozbudowanych „if...else if...else” (wprowadzanie dziedziczenia)
Refaktoryzacja jest możliwa dzięki oddzieleniu interfejsu od implementacji (jedna z podstawowych zasad projektowania obiektowego, słuszna także dla projektowania strukturalnego). Sprawia, że możliwe staje się ewolucyjne tworzenie oprogramowania, które pozostaje czytelne i proste.
Pomocna w refaktoryzacji jest staranna kontrola zależności między częściami kodu. Refaktoryzacja ma często prowadzić do uzyskania struktury kodu zgodnej z wzorcami projektowania.