Třída nebo modul?   zodpovězená otázka

VB.NET, Architektura

Dobrý den,

začnu hned příkladem:

Mám parser který mi rozparsuje data a pak je ukládá do XML.

Z prostého textu vezmu z každé řádky nějaké signifikantní znaky a podle toho určím kam co mám zařadit.

Z toho my vycházi dvě třídy. První třída ELEMENT, která provádí operace nad jedním elementem a druhá třída ELEMENTS která v sobě obsahuje list ELEMENTů z kterých pak získává obecné informace.

Mé otázky zní:

1) Kde by měly být parsovací funkce, které rozhodují o tom, jak bude sestaven ELEMENT? Měly by být umístěny ve třídě, nebo v modulu nad celým projektem?

2) Pokud bych měl volat tyto funkce i v definici třídy, měly by být takové funkce i součástí její součástí?

Ve třídě ELEMENT mám definovanou structuru "Structure", která definuje v jaké struktuře budou data uloženy do LISTu uvnitř třídy ELEMENT. Jenže tuhle strukturu musím použít i v samotném projektu např. uvnitř třídy FORM1, kde hodnoty struktury nejdřív ověřím a pak je naplním.

3) Kde by měla být umístěna tato definice struktury?

Měla by být v třídě, nebo v modulu?

Chápu že pokud třídu ELEMENT použiji v jiném projektu, pak musím opět definovat svou strukturu tak, aby třída ELEMENT nehlásila chybu, že tuto strukturu nezná.

Předem děkuji moc za vysvětlení,

PetrS

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Nevím jak si představujete aby to fungovalo, ale jedno je jisté: Nedělat žádné globální metody (do modulu, což je statická třída), odporuje to jednomu z pravidel OOP - zapouzdřenost.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Omlouvám se za mé vyjadřovací schopnosti.

Mám funkci, která převádí kolekci na pole collToArray(myCollection).

Tato funkce prostě mění jen vstup na výstup. Nic nikam neukládá.

Tuhle funkci bych rád uplatnil jak ve třídě Form1, tak v dalších 10ti jiných třídách.

Znamená to tedy že bych měl zkopírovat tuhle funkci všude, kde je potřeba? Tzn.: 10x.

S vytvářením vlastní třídy kolekce jsem měl problémy, nešlo zdědit kolekci ale jakousi CollectionBase.

PetrS

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ad 3 - struktura nemusí být ani ve třídě ani v modulu. Může být mimo. Co do hierarchie je na stejné úrovni, jako třída.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Jasně, děkuju.

PetrS

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback