[OOP] Design und Planung
-
Nachdem man die Basics in C++ hat, moechte man auch mal ein sinnvolles Project anfangen.
Spaetestens dann stellt sich die Frage der Planung und einem sinnvollen Design.
Ich wuerde mich sehr ueber gute Tutorials und LInks freuen, wie man ein Project durchdesigned.thx in advance
Ich habe mir mal das Project 'TicTacToe' von Shade of Mine angeschaut.(overengineered) http://tutorial.schornboeck.net/tictactoe_design.htm
Ich war beim ersten durchschauen verwirrt durch die vielen Klassen.
Wuerdet ihr sagen, dass es gut und noetig ist, sooo viele einzelne Klassen zu verwenden? Ich bin mir sicher, dass es auch mit weit weniger Klassen funktioniert haette. Ist es euer Meinung nach gutes OO Design?
-
Beginner schrieb:
Ich war beim ersten durchschauen verwirrt durch die vielen Klassen.
Wuerdet ihr sagen, dass es gut und noetig ist, sooo viele einzelne Klassen zu verwenden? Ich bin mir sicher, dass es auch mit weit weniger Klassen funktioniert haette. Ist es euer Meinung nach gutes OO Design?Ja, es ist nötig! Sonst kannste auch gleich prozedural Programmieren! Große Projekte bestehen aus sehr vielen kleinen Klassen. In der Regel sollte eine Klasse nicht 100 LoC überschreiten(sagt unser Prof. immer). Das es mal mehr sind und mal weniger ist natürlich klar.
Bedenke: OO != Funktionen in Klasse!
-
Beginner schrieb:
Ist es euer Meinung nach gutes OO Design?
Es gab einen Thread dazu wo das TicTacToe ordentlich zerrissen wurde. Allerdings waren es 'Kleinigkeiten', das gesamt Design ist gut.
Kleine Klassen sind leichter verwendbar. Man baut etwas großes aus kleinen Teilen.
Wenn dich spezielle Gründe interessieren warum ich was wie gemacht habe, frag hier ruhig. Wenn du alternative Designs hast, die du gerne diskutiert haben willst -> einfach hier fragen.
-
Wenn es gut ist, dann will ich es auch koennen.
Ich wuerde mich sehr ueber gute Tutorials und LInks freuen, wie man ein OO Project sinnvoll durchdesigned.
-
Wuerdet ihr sagen, dass es gut und noetig ist, sooo viele einzelne Klassen zu verwenden? Ich bin mir sicher, dass es auch mit weit weniger Klassen funktioniert haette. Ist es euer Meinung nach gutes OO Design?
Oftmals ergibt sich durch sowas zwar mehr Schreibarbeit, aber weniger Denkarbeit. Statt mehrere komplexe Sachverhalte auf einmal betrachten zu müssen sind sie alle schön einfach und handlich verpackt. Du kannst dich jeweils auf eine Sache konzentrieren.
Dadurch kommst du dann nachher, obwohl du vielleicht mehr getippt hast, trotzdem deutlich schneller voran. Du machst weniger Fehler. Du kannst mehr Dinge in anderen Situationen wiederverwenden. Du erkennst Möglichkeiten Dinge zu verbesern, die du anders nie gesehen hättest, weil Sie in einem wilden Code-Wust untergegangen wären.
-
Beginner schrieb:
Wenn es gut ist, dann will ich es auch koennen.
Ich wuerde mich sehr ueber gute Tutorials und LInks freuen, wie man ein OO Project sinnvoll durchdesigned.
Sowas kommt einfach mit der Zeit... Learning by doing ist - wie so oft - der beste Weg, ums zu lernen
Auch zum Thema OO-Design gehoeren sicher die Entwurfsmuster; dazu gibts einige gute Buecher: http://www.c-plusplus.net/cms/modules.php?op=modload&name=mbBooks&file=index
aber im Netz wirst du sicher auch fuendig
Allerdings sind Entwurfsmuster (engl. "Design Patterns") schon eher was fuer Leute, die bereits ein wenig Erfahrung in OOP haben. Am Anfang hilft eben nur selber programmieren. Noch ein kleiner Tipp: halt dich an "one class/function, on responsability", d.h. mach lieber viele kleine und kurze Klassen und Methoden, die dann aber wiederverwendbar, gut ueberschaubar und damit leicht verstaendlich sind, als viele grosse. Wenn du dich daran haelst, kann nimmer alles schief gehen
-
Objektorientierte Softwaretechnik | ISBN: 3827370825 is ganz nett.
und da war doch so nen typ der hier öfter rumhängt, der so nen buch für "dumme" leute geschrieben hat