Ich bin zur Zeit dabei, eine Anwendung mit einem eher prozeduralen Design neu zu schreiben. Bei dieser Gelegenheit soll diese mit einer neuen Programmiersprache (C# statt Visual Basic) und -natürlich- mit einem neuen Ansatz, also objektorientiert, geschrieben werden.
Die alte Anwendung lag ziemlich direkt auf der Datenbank, im Code sind überall SQL-Anweisungen verstreut. Der Nachteil dieser Lösung ist ziemlich offenkundig: Änderungen im Datenmodell sind nicht möglich und ein Wechsel der Datenbank schwer (zur Zeit Access, für die Zukunft Access sowie MS-SQL-Server).
Die neue Anwendung soll also verschiedene Klassen besitzen, da sie aus dem Projektmanagement Bereich kommt zum Beispiel folgende:
* Projekt-Klasse
* Ressourcen-Klasse
* Aufgaben-Klasse
Was mich nun beschäftigt ist, welches Design ich zum Suchen von Datensätzen benutzen sollte.
Mir schwebt ungefähr folgendes vor: Ich habe statische Klassen, die als Suchklassen fungieren. Eine könnte zum Beispiel ProjektSuch-Klasse heissen.
Sie hätte dann vielleicht eine Methode wie:
|
Source code
|
1
|
IEnumerator alleProjekte ( void )
|
-- würde einen Iterator über alle Projekte zurückgeben
oder:
|
Source code
|
1
|
IEnumerator suchNachName ( String Pattern )
|
-- würde zum Beispiel nach "PROJ_%_2003_%" oder ähnlichem Suchen
Der Nachteil ist, das mit diesen Klassen nicht besonders flexibel gesucht werden könnte - für eine neue Such-Art müsste man der Klasse eine neue Methode geben.
Hat einer von Euch so etwas in der Art schon einmal implementiert oder vielleicht auch einfach so eine bessere Idee?