Design-Frage

09/10/2008 - 20:05 von Mike Wesling | Report spam
Hallo,

Design im Betreff klingt vielleicht etwas übertrieben, aber ich will
einfach wissen, wie man gewisse Dinge Design-Technisch schön
implementiert. Vor allem, ob ihr einen Haufen (private) Methoden in
einer Klasse macht, obwohl diese nur 3-4 Zeilen haben, oder doch eher
versucht, mehr an einem Ort zu kapseln.

Ich habe festgestellt, dass es im Grunde die Möglichkeit gibt, den
ganzen Code auch sehr übersichtlich innerhalb eines Methodenrumpfes
abzuarbeiten. Die andere Variante wàre, verschiedene Bereiche daraus zu
machen und diese dann fast so "Workflow"-màssig in der vom User
bestimmten Methode aufzurufen. Also:

public MyClass()
{
Do_Part_1();
...
Do_Part_10();
}

private void Do_Part_1()
{
// do something here
}


Wenn man das schön in Methoden aufteilt, dann kann es auch einige
Methoden geben, die z.B. Attribute für die weitere Verarbeitung
ermitteln. Andere Methoden brauchen diese dann, um ihre Arbeit
verrichten zu können.

Macht Ihr das so, dass es einen Klassenmember gibt (z.B. eine
Collection), der dann aber nicht wie bei public-Methoden als Parameter
übergeben wird? Also sprich, jede private Methode schreibt/liest ihre
Informationen aus dieser Klassen-"Globalen". Also:

private List MyList;
public MyClass()
{
Do_Part_1();
...
Do_Part_10();
}
private void Do_Part_1()
{
... // Do something
MyList.Add(my_information);
}
private void Do_Part_1()
{
... // Read something from MyList
}


Oder ist es besser, dass man jede private Methode eher gestaltet wie
eine public-Methode und gute Signaturen baut? Das würde dann aber auch
bedeuten, dass die private Methode "Do_Part_1()" einen Rückgabewert hat
und diese Information dann an den Klassen-Member übergibt. Also z.B.:

private List MyList;
public MyClass()
{
MyList = Do_Part_1();
...
}
private List Do_Part_1()
{
List InternalList;

... // Do something

InternalList.Add(my_information);

return InternalList;
}



Das nàchste betrifft Informationen, die immer wieder zwischen
verschiedenen Klassen geteilt werden müssen. Zum Beispiel kann es sein,
dass man sich einmal einen bestimmten Pfad zu einer Datei zusammenbauen
will und dann von mehreren Klassen aus auf diesen zugreift. Oder man
möchte Konstanten in mehreren Klassen verwenden. Baut Ihr Euch dazu dann
immer eine "Datenhaltungs-Klasse" über einen Singleton oder wie macht
Ihr das?


Ich weiss nicht, aber bei guter Klassenaufteilung scheinen immer alle
Zugriffe gut aufzugehen, wie bei einem guten Schachspiel, aber wenn das
nicht der Fall ist, dann fragt man sich immer, wie man jetzt die
Informationenen, die man in einer anderen Klasse schon einmal ermittelt
hat, nun in die jetzige Klasse rüber bekommt. Vielleicht könnt Ihr mir
da mal wieder ein bisschen helfen!?!?
 

Lesen sie die antworten

#1 Mike Wesling
10/10/2008 - 21:23 | Warnen spam
Werden meine Fragen nicht mehr beantwortet? Hab ich was falsch gemacht?

Ähnliche fragen