A különbség a felhatalmazás és összetétele verem túlcsordulás az orosz
Ez egy más koncepció.
Delegálása - ez az, amikor a munka osztály „eltolja” a másik osztályba.
Például vezetője fejlesztés kapott ahhoz, hogy egy új funkció, ezzel a feladattal az egyik beosztottja.
Példa a küldöttség programozás - amikor az osztály, amely elvégzi a kifinomult algoritmus bejelentkezve tetteikért nem egyedül (fájl megnyitásakor, hozzáfűzve), de a Logger osztály. ami a megfelelő helyre a módszereket.
Általában delegáció ellenzi a megvalósítása valamit az ugyanabba az osztályba. Például ha klass- „vsemogutor”, akkor jobb, osszuk több osztály, melyek mindegyike rendelkezik saját felelősségi területe. A fő osztály csak azokkal küldő hívások között ezek az osztályok.
A készítmény - amikor a modellezett objektumok közötti világosan látható arány „része - teljes” (egy).
Például, szimuláló autó természetes azt feltételezni, hogy a motor - ez a része az autó. Programozási ez a modell, akkor azt kifejezni, hogy Engine osztály objektum tagja lesz az osztály Auto.
A kompozíciók általában ellenzik aggregáció és társulási. Összesítése hasonló a készítmény, amely ugyanaz a fajta kapcsolat a rész-egész. de nincs kapcsolat a tárgyak tulajdonjogát. Például: „egy csoport diák” - egy diák a csoportban, de a hallgató kívül léteznek a csoportban. Azaz, a romboló csoportokat nem „kill” a tárgyak a hallgatók. Egyesület közötti kapcsolatot fejezi ki minden olyan tárgyat, amely hívhatják módszerek egymást.
Azaz, a felhatalmazás lehet elhelyezni az arány az egyesület. és a készítmény közötti arány a tárgyakat.
Egy másik készítmény ellenzik öröklés. De ebben az esetben a készítményt és felhatalmazás - szinonimái. Abban az esetben, öröklés, teszünk az általános módszerek a szülő osztály Base. és a különböző megvalósítási osztályokat örökösök Derived1. Derived2. Egy példány az egyik származtatott osztályok, megkapjuk a kívánt funkciót az objektum.
De ugyanaz is lehet másképpen. Az alap osztály, még mindig hagyja az általános módszerek, és adjunk hozzá egy referencia (pointer) (azaz aggregiruem mutató végrehajtás) az interfész támogatás IRealization módszerekkel. Segítő módszerek különböző módon alkalmazzák az osztályban Realization1. Realization2. akik öröklik * IRealization felület. Most attól függően, hogy a témában a megvalósítás osztályok jelzik a tárgy Base. mi lesz a különböző funkciókat. Base átruházza feladatait IRealization.
A készítmény (együtt öröklés) - kialakítására szolgáló eljárásra viselkedését egy osztály. Küldöttség - egy kijelölésének módja felelősséget olyan viselkedést.
Abban az esetben, öröklési, otvetstvennot delegált a bázis és / vagy a származtatott osztály. Abban az esetben, a készítmény - a felelősség alapuló összevont osztályok (benne van a szerkezet az osztály példányosíthat szakasz). Más módszerek ruháztak ilyen szempontból.
Ie tömörebb választ a kérdésre: Song - egy módja annak, hogy a küldöttség a felelősséget a viselkedés (funkciók). Alternatívák készítmények öröklési, szempontok és szennyeződések.
Egy példa a felhatalmazás révén a készítmény egy tervezési minta „stratégia”, és példaként végrehajtás Treemap osztály konstruktora, amely úgy, mint a paraméter Összehasonlító, delegáló ezáltal ez felelős válogatás terméket.