Kezdőoldal » Számítástechnika » Programozás » C#, Nagy programrendszerek...

C#, Nagy programrendszerek fejlesztésénél ütközik valamilyen etikai, vagy programszervezési szabályba, ha statikus osztályokat ágyazok egymásba?

Figyelt kérdés

2013. jún. 10. 16:46
 1/7 anonim ***** válasza:
Ha statikus osztályt használsz, akkor nagyon nem is tudsz másképp tenni, amennyiben beágyazott osztályt kell (vagy akarsz) használni ugye. De OO környezetben illik csínján bánni a statikus tagokkal.
2013. jún. 10. 16:56
Hasznos számodra ez a válasz?
 2/7 anonim ***** válasza:

Nem ütközik szerintem semmilyen szabályba, még az erkölcsrendészet sem csap le Rád, mindazonáltal nem értem, hogy mi lehet a célod vele...

Miért nem jó pl. minden metódust a legfelső szintre hozni vagy egyszerűen kihagyni a legfelső szintet és egy csomó szabadon szaladgáló statikus osztályt használni.


A névterekkel ugyanúgy el lehet különíteni a statikus osztályokat, mintha beágyaznád őket egy nagyobb statikus osztályba és szerintem praktikusabb is, de győzz meg az ellenkezőjéről! ;o)

2013. jún. 10. 19:04
Hasznos számodra ez a válasz?
 3/7 anonim ***** válasza:

Nem, csak éppen nehezen kezelhető/áttekinthető a kód. A beágyazott osztályok egyébként is egy nagyjából haszontalan feature, nagyon ritkán indokolható a használata, és névterekbe szervezéssel kiváltható.(Ugyanez igaz a partial classokra is)

Komolyabb, nagyobb rendszereknél kb. ilyen megszorítások vannak egy coding guideline-ban ebben a témában:

- egy kódfile-ban egy osztály szerepelhet.

- egy assembly-ben lehet több namespace.

- egy namespace nem lehet több assembly-ben.

- partial class-ok csak akkor megengedettek, ha a designer generálja, pl. Form-oknál.

2013. jún. 10. 20:05
Hasznos számodra ez a válasz?
 4/7 anonim ***** válasza:

Az egy assembly egy namespace-szel vitatkoznék. Lehet ti így csináljátok, de ezt nem szokás így. Vagy nektek van nagyon kevés névteretek, és mindet osztályt 1 névtérbe hánytok, vagy pedig nagyon sok assemblytek van.

Ha megnézed a .NET fw forráskódját, ott is rengeteg névtér van egy assemblyben. A névterteket úgy szokás elnevezni, mint ahogy a mappa struktúra van. (Javaban ez közelező, de C#-ban is általában ajánlott)

Egy assemblynek van egy default namespace-e, és az a lényeg (úgy szép), hogy az összes benne lévő névtér vagy a default legyen, vagy azon belüli.


Ill a partial classoknál nem csak a designer által generátaknat engedném meg, hanem bármi által generáltakat. (Pl entityframework DB=>codefirst model-nél)

2013. jún. 11. 09:29
Hasznos számodra ez a válasz?
 5/7 anonim ***** válasza:

"Az egy assembly egy namespace-szel vitatkoznék"


Ebben az esetben magaddal vitatkozol, mert én nem írtam ilyet :D


Én ezt írtam:

- egy assembly-ben lehet több namespace.

- egy namespace nem lehet több assembly-ben.

2013. jún. 11. 14:32
Hasznos számodra ez a válasz?
 6/7 anonim ***** válasza:
Ó, bocsánat. De azt ami lehet minek felsorolni?:)
2013. jún. 11. 17:07
Hasznos számodra ez a válasz?
 7/7 anonim ***** válasza:

No problem, félreolvasás, előfordul :)


Hát végülis mindegy, hogy fogalmazom meg, megfogalmazhattam volna úgyis, hogy mit nem szabad, az eredmény ugyanaz lenne :)


A designer által generált-ba meg természetesen beleértem a linq-s cuccokat is, szóval rosszul fogalmaztam, úgy értettem, hogy minden olyan cucc, amit a Visual Studio generál le :)

2013. jún. 11. 17:56
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!