C#, Nagy programrendszerek fejlesztésénél ütközik valamilyen etikai, vagy programszervezési szabályba, ha statikus osztályokat ágyazok egymásba?
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)
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.
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)
"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.
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 :)
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!