Diskuze: OPP

C# .NET .NET (C# a Visual Basic) OPP American English version English version

Avatar
RododenDron
Člen
Avatar
RododenDron:

Zdravím, chystám se na jeden prográmek a chtěl bych se zeptat, jestli na to jdu opp dobře. Zjednodušeně řečeno, program by měl obsahovat 5 kolekcí, mezi kterými by prováděl výpočty atd. Můj nápad je si udělat pro každou kolekci vlastní třídu, ta by obsahovala vlastnost, což by byla ona datová kolekce. V daných třídách by se dále nacházely metody operující s danou kolekcí. Instance na tyto kolekce bych si udělal v MainWindow a přes konstruktor si je přeposlal do Operační třídy, která byla jakýsi most mezi všemi kolekcemi. Operační třída by obsahovala operace (metody) mezi kolekcemi. Těchto operací bude asi dost, protože každá kolekce může ovlivnit minimálně jednu a maximálně všechny ostatní kolekce. Je to dobrý nápad to takhle řešit, nebo by to šlo nějak lépe? Budu rád za každý nápad. :)

 
Odpovědět 20.7.2015 23:25
Avatar
patrik.valkovic
Šéfredaktor
Avatar
Odpovídá na RododenDron
patrik.valkovic:

Trosku líp popiš problém, čeho chceš vlastně dosáhnout? Těžko se navrhuje aplikace, když člověk nemá širší úhel pohledu. Například je opodstatněné, sby kolekce měla vlastní třídu? Proč není jedna třída s pěti kolekcemi? Neříkám, že to tak mudí být, záleží na situaci, proto se ptám na výsledek, co z toho má vzejít.

Nahoru Odpovědět 20.7.2015 23:38
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
RododenDron
Člen
Avatar
Odpovídá na patrik.valkovic
RododenDron:

Nemusela by mít každá kolekce vlastní třídu, ale nepřijde mě zrovna šťastně řešné, kdybych měl onu Operační třída, která by kromě 5 vlastností s kolekcemi, obsahovala pro každou kolekci přibližně 3-4 metody na manipulaci s danou kolekcí (přidávání, změnu, mazání, přepočet na kolekci apod.). Kromě toho by Operační třída musela obsahovat ještě několik dalších metod, pro vzájemnou změnu na kolekcích (změní se jedna hodnota na kolekci, tak to ovlivní třeba nějakou hodnotu v jiné kolekci). V podstatě chci dosáhnout toho, aby bylo kódu v budoucnu snadné porozumět a možné s ním dál pracovat, a byl srozumitelný co se opp týče. Výstupem programu pak bude program, který bude pomocí dat v kolekcích provádět výpočty.

 
Nahoru Odpovědět 21.7.2015 0:02
Avatar
Odpovídá na RododenDron
Michal Štěpánek:

Je to takové hooooodně obecné. Kdybys napsal o co se konkrétně snažíš (protože kolekce můžeš použít téměř na cokoliv), tak by ti někdo i poradil, ale takhle, když nevíme, co z toho má vzejít, se poradit prostě nedá...

Nahoru Odpovědět 21.7.2015 7:20
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
vodslon
Člen
Avatar
Odpovídá na RododenDron
vodslon:

Já tedy nevím co chceš přesně udělat, ale třeba pokud chceš mít stejný přepis třeba pro kolekce, tak se používá navrhový vzor Iterator. Ten Ti dovoluje mít jednotný výstup pro kolekce různého typu, aniž bys musel ty kolekce měnit. Zkus to třeba popsat více konkrétněji ten problém co řešíš.

 
Nahoru Odpovědět 27.7.2015 8:53
Avatar
patrik.valkovic
Šéfredaktor
Avatar
patrik.valkovic:

Možné by bylo i řešení, kdy bys vytvořil generickou třídu, kterou bys následně specifikoval pro každou kolekci. Poté třída, která s daty manipuluje, by brala pouze tuto generickou třídu a bylo by ti jedno, s kterou kolekcí manipuluješ - zredukoval by se ti počet metod, které potřebuješ. Z křišťálové koule se těžko vysvětluje.

Nahoru Odpovědět 27.7.2015 22:25
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.