A feltételes szolgáltató helyettesítése polimorfizmussal
Reformáló okok
Ez a refaktoring segíthet abban, hogy a kódban feltételes állítások vannak, amelyek különböző feladatokat végeznek, attól függően, hogy:
- osztályos objektumot vagy interfészt, amelyet végrehajt;
- az objektum egyik mezőjének értéke;
- az objektum egyik módjának meghívása.
Ebben az esetben, ha új típusú vagy objektum van az objektumban, akkor meg kell keresni és hozzá kell adnia a kódot az összes hasonló feltételes utasításhoz. Így a refaktorálás előnyei akkor nőnek, ha több feltételes szolgáltató van, és az objektum összes metódusában szétszóródnak.
méltóság
- Ez a refactoring végrehajtja a beszéd elveit, és nem kérdez. Ahelyett, hogy megkérdezné az objektumot az állapotáról, majd ennek alapján valamilyen műveletet hajt végre, sokkal könnyebb megmondani neki, hogy mit kell tennie, és hogyan fogja megtenni.
- Megöli a kód megismétlését. Megszabadulsz egy csomó, majdnem azonos feltételes nyilatkozattól.
- Ha új megvalósítást szeretne felvenni, mindössze annyit kell tennie, hogy új alosztályt adjon hozzá a létező kód megérintése nélkül (a nyitottság / zárás elve).
Refrakciós sorrend
Felkészülés a refactoringre
Ennek a refaktoringnek a végrehajtásához készen kell állnia egy olyan kész osztályhierarchia, amely alternatív viselkedéseket tartalmaz. Ha ilyen hierarchia nem létezik, létrehoznia kell. Ez segíthet más refaktorizálásban:
- Az alosztálykódolás helyettesítése. Ebben az esetben az objektum egyes tulajdonságainak összes értéke esetén azok alosztályai lesznek létrehozva. Ez egy egyszerű, de kevésbé rugalmas módszer, mert akkor nem lesz lehetséges alosztály létrehozása más objektum tulajdonságokra.
- Státusz / stratégiai kódolás helyettesítése. Ebben az esetben az objektum egy adott tulajdonságára vonatkozóan az osztály fel lesz kiemelve, és ebből minden tulajdonság értéke alosztályokat hoz létre. Az aktuális osztály tartalmaz referenciákat az ilyen típusú objektumokra és átruházza őket a végrehajtásra.
A refactoring következő lépései azt jelentik, hogy már létrehozott egy hierarchiát.
A refactoring lépései
- Ha a feltételes kimutatás olyan módszer, amely valami mást tesz, kivonat egy új módszerbe.
- A hierarchia minden egyes alosztályában definiálja újra a feltételes nyilatkozatot tartalmazó eljárást, és másolja át a nyilatkozat megfelelő ágára vonatkozó kódot.
- Távolítsa el ezt az ágat a feltételes nyilatkozatból.
- Ismételje meg a cserét, amíg a feltételes utasítás üres. Ezután törölje a feltételes állítást és deklarálja a módszert absztraktként.
Fuss a párnához, itt van 7 óra tartalma.
Vagy próbálja meg online tanfolyamunkat. Sokkal érdekesebb, mint a banális szöveg.