Amennyiben Class Segítők lehet használni a fejlődő új kódot?

szavazat
10

Delphi 8 bevezetett Class segítők céljára feltérképezése VCL / RTL a .NET objektum hierarchia. Ezek lehetővé teszik az intravénás módszereket a már meglévő osztály nélkül felülírja a az osztály vagy módosítása az eredeti. Később változatai Delphi talált osztály segítők javult, és ők portolták Win32.

A segítség azt mondja: „ők nem úgy kell tekinteni, mint egy tervező eszköz használható, ha a fejlődő új kódot.”

Class Segítők sérti hagyományos OOP, de nem hiszem, hogy az teszi őket egy rossz dolog. Ez a figyelmeztetés indokolt?

Amennyiben osztály segítőket kell használni, amikor a fejlődő új kódot?

Ne használja őket, amikor a fejlődő új kódot?

Miért vagy miért nem?

Per Malcolm megjegyzései : Új kód jelenti napi alkalmazás-fejlesztés, ahol van néhány 3rd party könyvtárak, néhány meglévő kódot, majd kódot írunk.

A kérdést 10/12/2008 03:31
a forrás felhasználó
Más nyelveken...                            


10 válasz

szavazat
1

Ezek hangzik C # kiterjesztése módszerekkel. Azt mondhatjuk, hogy míg kiterjesztés módszerek, mint ezek hasznosak, ha nem képesek módosítani egy osztályt, amely meg kell terjeszteni a funkcionalitás, ők egy rossz módszer, hogy saját kódját. Tervezésekor a saját kódját, azt szeretné az összes funkciót kell elhelyezni ugyanazt a kódot fájlt, amennyire csak lehetséges, nem pedig elterjedt a különböző osztályok. Azt mondanám, hogy használja őket, amit ők szánták - alapvetően a lakberendezők, hogy új funkciókat zárt osztályok - és ne használja őket tervezzen saját kódját.

Válaszolt 10/12/2008 03:36
a forrás felhasználó

szavazat
2

Sajnos nem lehet segíteni, de Captain Nyilvánvaló egy pillanatra: Ha a belső Delphi emberek maguk állam „ők nem úgy kell tekinteni, mint egy tervező eszköz használható, ha a fejlődő új kódot”, akkor definíció szerint nem lehet őket használni. Ők ott húzódó VCL saját célra csak. Ki más fog adni egy jobb oka, mint az emberek, hogy írta?

Válaszolt 10/12/2008 04:14
a forrás felhasználó

szavazat
15

Attól függ, mit értesz „új kódot”.

Ezek nem igazán lényeges osztályok újonnan fejlődő, így ebben az esetben nem, akkor valószínűleg nem kell alkalmazni.

De még egy teljesen új projekt, akkor is szükség van, hogy módosítsa a meglévő osztály, hogy nem lehet változtatni más módon (VCL osztály, harmadik fél osztály, stb.). Ebben az esetben persze, azt mondanám, hogy menjen előre.

Ők nem rossz, és a magukat. Mint a legtöbb más dolog, csak meg kell érteni, hogyan működnek, és használja őket a megfelelő kontextusban.

Válaszolt 10/12/2008 05:32
a forrás felhasználó

szavazat
1

Azon kapom magam, használja őket egyre több és több, mint egy design konstrukciót.

Helyzetek, amikor ezeket használni:

  • A kliens / szerver beállítás, hosszabbíthatom közös alap-osztályok osztály segítőket, hogy szerver- vagy kliens csak funkcionalitást.
  • Hogy kiegészítse VCL / RTL osztályok (és egyéb, harmadik féltől kód) praktikus szerszám funkciókat.
  • Kerülő különbségeket osztályok nem azonos leszármazási fát (a segítőket lehetővé teszi, hogy már a generikus Count és tételek tulajdonságait, például).

Sőt, bárcsak Delphi fogadná több segítők ugyanazon alap osztály - Én is nyújtott be kérelmet erre, ha én emlékezve helyesen.

Válaszolt 10/12/2008 07:45
a forrás felhasználó

szavazat
6

Microsoft alapú LINQ erősen körül Extension módszerei. Ennek fényében érdemes használni Class segítők új kódot, ha ez javítja a kódot. Lásd Milyen jó felhasználási osztály segítők? néhány jó célokra.

Válaszolt 10/12/2008 08:02
a forrás felhasználó

szavazat
1

Találtam ezt a cikket , nagyon érdekes. Foglalkozik C ++, de a fő gondolatok nyelvtől függetlenek. A fő lényeget, hogy a globális rutin néha preferrable módszerekkel is OOP környezetben. Ebből a szempontból, ott kevesebb szükség osztály segítők.

Válaszolt 10/12/2008 09:14
a forrás felhasználó

szavazat
8

Mielőtt magába osztály segítők, mint egy új eszköz a díszes kódot, azt hiszem, meg kell érteni a korlátozásokra tartalmaz. Már csak lehetséges, hogy egy osztályba helper egy osztályban. Tehát mi fog történni, ha az Ön által megadott osztály segítők az osztályokra, és az osztályok származik közös osztályt, hogy más adtak egy osztályt segítő?

CodeGear bevezeti osztály segítők, mint „hack”, hogy megakadályozzák törés dolgokat, nem a cool design jellemző. Ha design-kód, tervezés nélkül osztály segítők. Tudom, hogy képes vagy rá. Amikor foglalkozó meglévő kódot, hogy beállítható, használható újratervezés. Ha nincs más út, eléri osztály segítők.

Amit véleményem bármilyen módon ...

Válaszolt 10/12/2008 11:05
a forrás felhasználó

szavazat
3

Azt használja őket nagyon. ÉN használ távoli objektumok és tárgyak vannak által létrehozott RO motor, így nem lehet hozzáadni őket anélkül, csökkenő tőlük, és akkor más bit szórakozni. Class Segítők jelenti azt, hogy kezelni őket, mint bármely más tárgyat. és miközben egy osztály csak egy segítőt, akkor süllyedni segítő osztályok, így megkapja az öröklött viselkedés.

Válaszolt 10/12/2008 14:33
a forrás felhasználó

szavazat
2

Egyetértek Vegar ebben: class segítők, mint egy sürgősségi eszköz. Amikor tudod, hogy ez az egyetlen módja annak, hogy a dolgokat tenni az időben biztosított. Később, ha van ideje rá, távolítsa el őket.

Azt egyszer elfelejtettem parametrizálását dolog, és ha osztály segítők nem létezett Delphi 2006 kerülne egy HATALMAS SOK IDŐ ..... osztályú segítők, akkor 6 órát vett, hogy thigs működnek jól. De, ez volt vészhelyzet - class segítők egy homályos nyelv funkcióját, és ezt nehézségeket okoz az új fejlesztők, hogy kövesse az áramlás a programot.

Válaszolt 10/12/2008 16:08
a forrás felhasználó

szavazat
2

Talán egy jó aproach használhatja, (mint én használom):

  1. Mindig előnyben részesítik az öröklési felett osztály segítők, használja őket, csak akkor, ha öröklés nem lehetséges.
  2. Adj előnyben Class segítők a meztelen globális módszereket .
  3. Ha lesz szüksége a extendend alkalmassága több mint egy egység, kipróbálni valami mást ( mint osztály csomagolást ).

Net Extensions módszerek túl hasonlóak, és ahol létrehozott és támogatott az pontosan ugyanazon okból: készítsünk Extention a bázis osztályok (inkább, mint egy frissítést wich a Delphi.Net nem volt lehetőség annak érdekében, hogy megpróbálják Delphi natív kód fajtája a „kompatibilis” Net-kód - IMHO ez túl ambiciózus)

Különben is, Delphi osztály segítők mindig elég eszköz bizonyos helyzetekben.

Válaszolt 11/12/2008 01:52
a forrás felhasználó

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more