Funktionenaufteilung innerhalb zweier LIBs

Gast #6947460
Lesenswert?

Hallo,

ich Programmiere in C++ und habe hier eine ganze Menge Klassen, die ich 
jetzt auf zwei LIBs (.lib) aufteilen möchte. Und ich frage mich, wie 
mach ich das am Besten ?

Klar ist, daß ich das nach 'Themen' ordne. Also Thema A in LIB1 und 
Thema B in LIB2.

Jetzt ist es aber so, daß LIB1 eine Klasse aus LIB2 verwendet. Und ich 
bin irgendwie unschlüssig, ob das ein gutes Konzept ist. Oder ob es an 
sinnvoller Klassenaufteilung mangelt.

LIB1 ist dann ja auch immer auf LIB2 angewiesen und kompiliert dann 
garnicht alleine.

Hmmmmmmm. Wenn ich da jetzt mal genauer nachdenke wird das ja statisch 
erledigt. D.h. Die Klasse von LIB2 wird einfach in die LIB1 kopiert. Und 
das Problem hat sich erledigt.

Liege ich da richtig ?

Gruß Peter
#6947468
Lesenswert?

Peter schrieb:
> Jetzt ist es aber so, daß LIB1 eine Klasse aus LIB2 verwendet. Und ich
> bin irgendwie unschlüssig, ob das ein gutes Konzept ist. Oder ob es an
> sinnvoller Klassenaufteilung mangelt.

Das weisst im Moment nur du.
Du solltest dir folgende Frage stellen:
Warum sollen es zwei Libs sein?

Das macht dann Sinn wenn eine Lib z.B auch ohne die Funktionen der 
anderen sinnvoll in anderen Projekten genutzt werden kann.

Beispiel:
Du hast eine Lib mit universellen Funktionen für den Zugriff auf 
Datenbanken
Eine zweite Lib nutzt diese erste um spezifische Zugriffe auf eine 
bestimmte Datenbank zu machen.
Diese zweite wird von mehreren Projekten genutzt um auf diese 
spezifische Datenbank zugreifen zu können.
Andere Projekte wiederum nutzen nur die erste Lib um damit auf andere 
Datenbanken zuzugreifen.

Zyklische Verkettung wie lib2 nutzt lib1 und lib1 nutzt lib2 sollte man 
vermeiden.
Gast #6947999
Lesenswert?

Es gibt in der Regel keinen grund, 2 getrennte libs zu haben. Höchstens 
2 oder 3 verschiedene compilierungen ("Ziele") aus einem Quelltext.

Darum: was meinst Du mit 2 libs. Warum 2? Was versprichst Du Dir davon? 
Programme werden dadurch nicht größer oder kleiner oder einfacher.
Gast #6948026
Lesenswert?

Peter schrieb:
> LIB1 ist dann ja auch immer auf LIB2 angewiesen und kompiliert dann
> garnicht alleine.

Muss nicht zwangsläufig ein Problem sein. Auch libs können libs 
verwenden. Wenn lib2 auch von lib1 abhinge, wäre es vermutlich unsinnig.

Wichtiger ist, macht es konzeptionell sinn. Überleg dir, wofür ist 
welche lib? Dann frag dich, macht es sinn, das das von dem abhängt, oder 
umgekehrt, oder ist es problematisch? Wie wird sie verwendet, nützliche 
Funktionen Auslagern zum wiederverwenden, plugin artiges, optionale 
Zusatzfeatures, etc?

Überleg dir auch, was du bei den Libs exportieren willst / nutzen 
willst. Wie soll die API aussehen, das das zukünftig gut 
weiterentwickelbar & stabil bleibt? Sollten gewisse dinge wegabstrahiert 
/ von der Anwendung versteckt, oder umgekehrt, werden?

usw.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren