Měl jsem poskytují přístupové metody / Getter Setters pro veřejné / chráněné složky na formuláři?

hlasů
4

Mám-li Net formulář pomocí komponentního / objektu, jako je například textové pole, které jsem třeba přistupovat z rodičů nebo jinou formu jsem samozřejmě muset „upgrade“ modifikátor na tuto komponentu na interní nebo Public úroveň proměnné.

Teď, když jsem byl poskytující veřejnou proměnnou s int nebo řetězec typu atd v mé třídy formuláře bych dvakrát přemýšlet o použití metody pro čtení a (možná) setters vyřešit, i když nedělal nic jiného, ​​než poskytnout přímou přístup k proměnné.

Nicméně, VS designer Nezdá se, že provádění takových getry / tvůrci pro ty veřejné objekty, které jsou komponenty na formuláři (a proto není v souladu s dobrou praxí programování).

Takže otázka je, Za tímto účelem se „správnou věc“ bych měl zabalit, jako VS designových prvků či objektů v získání a / nebo setra?

Položena 08/08/2008 v 15:35
zdroj uživatelem
V jiných jazycích...                            


4 odpovědí

hlasů
4

Nicméně, VS designer Nezdá se, že provádění takových getry / Setters pro ty veřejné objekty, které jsou komponenty na formuláři (a proto není v souladu s dobrou praxí programování).

Pokud máte na mysli ovládací prvky jste přetažením do formuláře, jsou tyto označeny jako soukromé členy instance a jsou přidány do kolekce Controls formuláře. Proč by mohlo být jinak? Formulář může mít čtyřicet nebo padesát kontrol, bylo by to poněkud zbytečné a nepraktické poskytnout getter / seřizovač pro každý ovládací prvek na formuláři. Projektant ponechává jen na vás, pro zajištění přístupu delegována na konkrétních kontrol prostřednictvím veřejných getrové / tvůrci.

Projektant dělá správnou věc.

Odpovězeno 08/08/2008 v 15:50
zdroj uživatelem

hlasů
2

Jedná se o klasický příklad zapouzdření v objektově orientovaného návrhu.

Formulář, je objekt, jehož úkolem je představit UI pro uživatele, a přijímat vstup. Rozhraní mezi objektem formuláře a dalších oblastech kódu by měla být datové rozhraní orientované, není rozhraní, který odhaluje vnitřní implementační podrobnosti k formě. Vnitřní fungování formuláře (tj kontroly) by měly zůstat skryty z jakéhokoliv náročné kódu.

Zralý řešení by pravděpodobně zahrnovat následující konstrukční body:

  • Veřejné metody nebo vlastnosti jsou chování (zobrazit, skrýt, poloha) nebo datové orientované (sada dat, získání dat, aktualizaci dat).
  • Všechny obslužné rutiny událostí realizované formou jsou baleny ve vhodném kódu nit delegace prosazovat forma vylučuje thread-spuštění.
  • Ovládací prvky samy o sobě by bylo dat vázaný k základní struktuře dat (pokud je to vhodné), ke snížení kód.

A to ani za zmínku meta-vývojových věci jako jednotkové testy.

Odpovězeno 08/08/2008 v 16:51
zdroj uživatelem

hlasů
2

Důvodem pro neprovedení získání a nastavení pro komponenty na formuláři, je podle mého názoru příčinou, že by neměla být „Thread Safe“ Net objekty jsou Předpokládám být modifikovány pouze tvaru závitu, který je vytvořil, Pokud dáte na kariérista a tvůrci se potenciálně otevírá ji pro každou nit. Místo toho vaše Předpokládám zavést delegáta systém, ve kterém jsou změny v těchto objektech přenesenými na niti, který je vytvořen a běžel tam.

Odpovězeno 08/08/2008 v 15:42
zdroj uživatelem

hlasů
1

Vždycky jsem to udělat, a pokud jste v návaznosti na návrh MVP vytváření getrové / setters pro vaše zobrazení složek by požadavek konstrukce.

Nechápu, co myslíte tím „není v souladu s dobrou praxí programování“. Microsoft porušuje spoustu dobrých programovacích postupů, které usnadňují vytváření věci na Visual Studio (kvůli rychlému vývoji aplikací) a nevidím nedostatek getry / regulátorů pro ovládací prvky jako důkaz o porušení takové osvědčené postupy.

Odpovězeno 08/08/2008 v 15:41
zdroj uživatelem

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