[ BinaryRuler @ 19.11.2009. 19:47 ] @
Prvo da definisem problem:
Npr. ako imam baznu klasu Oblik i iz nje trebam da izvedem klasu Krug i Kvadrat iz nje, to je ok. Ali svaka izvedena klasa mora da ima formu(dialog) za podesavanje nekih propertisa. Takodje i za tu formu imam baznu klasu PropertiesForm. Problem se javlja u imenovanju izvedenih klasa i u organizaciji source fajlova.
Pitanje je da li sve *.h i *.cpp fajlove staviti u jedan folder i izvedenu klasu nazvati recimo KrugPropertiesForm. ili to uraditi koriscenjem namespace-ova odprilike ovako nekako ...

Struktura fajlova:
Code:

src
|
+---Baza
|      |
|      +---Oblik.h
|      |
|      +---Oblik.cpp
|      |
|      +---PropertiesForma.h
|      |
|      +---PropertiesForma.cpp
|
+---Kvadrat
|         |
|         +---Kvadrat.h
|         |
|         +---Kvadrat.cpp
|         |
|         +---PropertiesForma.h
|         |
|         +---PropertiesForma.cpp
+---Krug
       |
       +---Krug.h
       |
       +---Krug.cpp
       |
       +---PropertiesForma.h
       |
       +---PropertiesForma.cpp


Podelio sam klase po namespace-ovima. Imena foldera su takodje i imena namespace-ova.


Ja sam maksimalno pojednostavio, problem inace je u pitanju mnogo veci problem.

Interesuje me koje je bolje resenje.

ps. ako bude potrebno mogu da okacim class dijagram ovoga sto sam definisao ovde.
[ Mihajlo Cvetanović @ 20.11.2009. 07:53 ] @
Ako nemaš neki poseban razlog da ne koristiš jedinstvena imena fajlova onda koristi jedinstvena imena fajlova. Možda ti se sad čini slatko što si otkrio da možeš da koristiš isto ime za više fajlova, ali to se ne radi, i verovatno postoji razlog zašto se to ne radi.
[ BinaryRuler @ 20.11.2009. 11:54 ] @
Nisam otkrio kao sto si rekao, nego mi je jednostavno palo na pamet i cinilo mi se kao elegantnije resenje.
Inace radim na mnogo vecem projektu (trenutno imam preko 30 klasa) pa mi pitanje organizacije klasa i fajlova postaje sve cesca tema za razmisljanje. Kada mi je to palo na pamet pogledao sam source od Qt 4.5 i video da u njihovoj organizaciji fajlova ima foldera koji takodje ogranicavaju neke namespace-ove i imaju vise fajlova sa istim imenom rasporedjenim po razlicitim folderima.

Problem je ako uvodim jedinstvena imena klasa kao sto su KrugFrameProperties dobijam u mom projektu malo duza imena klasa, a i ako sve .h .cpp fajlove drzim una jednom mestu bez neke organizacije nevidi se uvid u strukturu.

Ako bi koristio namespace-ove onda bi izvedena klasa izgledala odprilike ovako:

Code:

#ifndef Krug_PropertiesForma_h
#define Krug_PropertiesForma_h

#include <Baza/PropertiesForma.h>



namespace Krug {

class PropertiesForma : public Baza::PropertiesForma {

};

} /* End of namespace Krug */

#endif // Krug_PropertiesForma_h


Evo class dijagrama za ovaj problem:


[ Mihajlo Cvetanović @ 20.11.2009. 16:53 ] @
Okej, probaj to što si namerio, pa nam posle nekog vremena javi koja je razlika, kako ti se čini ta fora. Koliko god da mi ovde pričamo, dok neko ne proba nećemo znati.
[ BinaryRuler @ 20.11.2009. 17:32 ] @
Bez sumnje radice i jedno i drugo posao, ali je pitanje sta je semanticki ispravnije i profesionalnije.