Nauč se s námi víc. Využij 50% bonus na e-learningové kurzy.
Pouze tento týden sleva až 80 % na e-learning týkající se Javy
Avatar
RododenDron
Člen
Avatar
RododenDron:20.7.2015 23:25

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
Odpovídá na RododenDron
Patrik Valkovič:20.7.2015 23:38

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 Valkovič
RododenDron:21.7.2015 0:02

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
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Odpovídá na RododenDron
Michal Štěpánek:21.7.2015 7:20

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:27.7.2015 8:53

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 Valkovič:27.7.2015 22:25

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.