A számítógép-programozásban előfordulhatnak hasonlóan működő osztályok, melyeknek azonban semmi közük egymáshoz. Nem kell, hogy teljesen egyforma metódusok legyenek bennük, sőt, nem kell, hogy ugyanannyi metódus legyen. A lényeg, hogy aki összehasonlítja a két osztályt, az úgy találja, hogy ezek alternatív osztályok különböző interfészekkel. Okozhatja, hogy a két osztályt a csapat két tagja fejlesztette, vagy a programozó már elfelejtette, hogy van egy hasonló osztály.

A kódszag kijavítására egységesíteni kell a metódusokat, átnevezéssel, paraméterezéssel, paraméterek hozzáadásával és szükség esetén metódusok mozgatásával. Ezután mérlegelni kell, hogy szükség van-e egyáltalán mindkét osztályra. Ha igen, akkor célszerű létrehozni közös ősosztályt. Ha nem, akkor az egyik osztály törölhető, a másik osztály klienseit pedig a megmaradt osztályból kell ellátni.

A javítás eredményeként érhetőbb, olvashatóbb kódot kapunk, és megszabadulhatunk kódduplikációtól is.

Előfordulhat, hogy nem célszerű az egységesítés, például a működés ugyan hasonló, de jelentése eltérő. Előfordulhat, hogy más könyvtárhoz tartoznak, vagy hogy túl nehéz, vagy akár lehetetlen végrehajtani a javítást.

Forrás Refractoring Guru

Kategória:Programozási antiminták