Összehasonlítása összetételét küldöttség és öröklés, a blog titkosítás

Egy másik fontos szempont az öröklés, hogy káros lehet: öröklés tönkreteheti a tokozás és mindig fokozza kapcsolat. Bizonyára egyetértenek abban, hogy a tokozás - a legalapvetőbb és legfontosabb objektum-orientált koncepció.

Ha igen, miért semmisítette meg? Ha a beágyazás tartó alap típust védett területeken, és sérti a integritását a tokozás héj és nyissa fel a belső tér a szülő osztály, akkor nem lesz jó. Az alábbiakban ismertetjük a rendelkezésre álló alternatívák, amelyek lehetővé teszik, hogy dolgozzon ki a legjobb design.

Sokan leírják öröklés mint újrafelhasználásának „fehér doboz”. A legjobb formáját újrahasznosítás - egy „fekete doboz”, ha a belső tér a tárgy nem lehet nyitni a külvilág felé. Ez úgy érhető el alkalmazásával történő felvétele kapcsán (konténment). Igen, ez így van.

Ahelyett, hogy örökli egy új osztályt a másik, akkor egy példányát a másik osztály jön létre, és ezáltal újra a mellékelt osztálytípus megsértése nélkül beágyazás. A hátránya ennek az eljárásnak kapcsolódik az a tény, hogy a legtöbb nyelven, beleértve a C #, akkor szükséges egy kicsit több munkát kódolás, bár nem sokkal. De az eredmény egy jobban alkalmazkodó design.

Egy egyszerű példa, úgy a tárgykörben, ahol az osztály szolgál valamilyen speciális hálózati kommunikációt.

Ezt hívjuk osztály NetworkCommunicator és azt feltételezik, hogy ez a következő:

Most tegyük fel, hogy később úgy döntött, hogy nem lenne jó, ha EncryptedNetworkCommunicator objektumot, ahol az adatok titkosítva elküldeni. Közös megközelítés - örökölni EncryptedNetworkCommunicator NetworkCommunicator.

Ezután a végrehajtás így néz ki:

Ennél a kiviteli alaknál, egy nagy hátránya kapcsolódik. Először is, a jó tervezés megköveteli, hogy a módosítást, hogy a funkció az alap osztály módszerek, újra meg kell határozni.

A helyes felülírják őket, csak ki kell nyilvánítani a virtuális. Ez megköveteli egy előrejelzést a jövőbeli tervezésénél NetworkCommunicator osztály és jelölési módszerek virtuális módosítót, de mivel ez nem volt lehetséges, hogy megjósoljuk a jövőt, a módszerek nem voltak jelölve a virtuális és ezért EncryptedNetworkCommunicator kód nem fordul le a fenti.

Igen a # módszerek elrejthető a kulcsszó meghatározásakor az új származtatott osztály módszerek. De ha ezt teszi, sérti az, amely kimondja, hogy szimulálja öröklés hozzáállás „van” (is-a).

Most úgy vélik a helyzet a felvételét:

Mint látható, a munka nem csak sokkal több. De a plusz, hogy Network kommunikátor újra, mintha egy „fekete doboz”. NetworkCommunicator fejlesztők tehetné lezárjuk, és akkor is képes, hogy újra azt. Vajon lezártak, akkor definíció szerint nem örökli tőle.

Használata NetworkCommunicator felvételével is tudunk nyújtani a közbeszerzési eljárásokból a tartályt, amely egy kicsit más, mint az, hogy eladja magát NetworkCommunicator. Ez az úgynevezett a mintázata homlokzati (homlokzati).

Egy másik hátránya a használata öröklés, hogy nem dinamikus. Öröklési statikus annak a ténynek köszönhető, hogy meghatározzuk fordításkor. Ez a helyzet lehet, legalábbis meglehetősen korlátozottak. Alkalmazása felvételét, akkor megszünteti ezt a korlátozást. Ahhoz azonban, hogy ezt, akkor is javasolják az egy jó barát - polimorfizmus. Ebben az esetben, amely típusú lehet, például, interfész típusa.

Ha ezt az algoritmust az alapértelmezett tartalmazza a típus, amely helyettesítheti a futás, majd szükség esetén tárgykörben, akkor mindig cserélje ki a maga sajátos rendező algoritmus - mindaddig, amíg az új rendezési algoritmus objektum megvalósítja a kívánt felületet, a várható konténer típusát. Ez a technika ismert, mint a tervezési minta stratégia (stratégia).

Ennek eredményeként a design dinamikus design sokkal rugalmasabb, mint a statikus szerkezetek. Ez magában foglalja a preferencia öröklési sok esetben újra használni. Ez a fajta újrafelhasználás ismert delegáció munkája óta delegált tartalmazza típusát. Befogadás is megakadályozza tokozás, míg az öröklési elpusztítja azt. Mindazonáltal fontos, hogy egy figyelmeztetést.

Mint szinte minden technikai eszköz, fennáll annak a veszélye, hogy túlzásba a befogadást. Kis segédprogram osztályok, talán nem kellene túl sok erőfeszítést annak érdekében, hogy a végrehajtást.

És bizonyos esetekben szükséges használni öröklés végrehajtásához specializáció. De általánosságban elmondható, hogy a design, inkább öröklik befogadás újrafelhasználási mechanizmus lehetővé teszi a sokkal nagyobb rugalmasságot és sokkal jobban képes ellenállni az idő próbáját.

Mindig vegye figyelembe a hatalom öröklési, beleértve a lehetséges kellemetlen következményeit visszaélést.