Was ist objektorientiere Programmierung?



  • u_ser-l schrieb:

    Wer redet hier von schlechtem OO-Code ? OO zwingt den Programmierer, mehr *vorher* nachzudenken, das Ergebnis ist typischerweise besser wartbarer Code als ohne OO.

    Warum muss ich bei OO mehr vorher nachdenken?



  • u_ser-l schrieb:

    Shade Of Mine schrieb:

    Äh... Nein. Schlechter OO-Code ist keinen deut besser als schlecter XY-Code.

    Wer redet hier von schlechtem OO-Code ? OO zwingt den Programmierer, mehr *vorher* nachzudenken, das Ergebnis ist typischerweise besser wartbarer Code als ohne OO.

    Auch wenn ich dir vom Grundsatz recht gebe, das OO-Code häufig die Wartbarkeit erhöht, heißt dies noch nicht lange das alle OO-Programmierer vorher über das nachdenken, was sie umsetzen (Und damit ist OO-Code eben nicht immer Wartbarer).

    Der "OO"-Code meines ehemaligen Programmierchefs halte ich für einen der am schlechtest wartbaren Dinge. Das hat aber nichts mit OO, sondern mit der Umsetzung zu tun (Und dort liegt immer die größte Fehlerquelle vor dem Rechner).

    Ich bin zwar kein Vertreter von dem in C kann man OO Programmieren (Weil für mich auch Datenkapselung zu OO gehört, und die sehe ich in C nicht gegeben), aber ebenso sehe ich in dem reinen Begriff OO die Lösung aller Probleme. Viele sagen OO nehmen dieses Wort aber eher als Marketingbegriff.

    cu André



  • Bashar schrieb:

    byto schrieb:

    Und danach vielleicht mal einen Blick in die Sourcen eines wirklich großen Projekts werfen, das objektorientiert programmiert ist.

    Kannst du eins empfehlen? Vielleicht was kleines bis mittelgroßes, nicht gleich Eclipse oder sowas.

    Jo, guck Dir z.B. mal das Spring Framework an (gibts für Java, .NET):
    http://www.springsource.org/download

    Ist zwar eine recht große API, aber da es verschiedene Aspekte behandelt, kannst Du Dir gut einen kleinen rauspicken und die Sourcen dazu einsehen. Das Framework ist IMO nicht nur perfekt dokumentiert, sondern ist auch ein Paradebeispiel für OOP.



  • Hi,

    ich versuchs mal nem Vergleich aus dem waren Leben.
    Ne Mutter von vielen kleinen Kindern muß jedes einzeln waschen. Das enstpricht prozeduraler Programmierung.
    Ne Mutter von gößeren Kindern hat ihnen die Fähigkeit sich selbst zu waschen beigebracht und braucht nur noch zu jedem zu sagen "wasch dich"!. Das entspricht objektorientierter Programmierung.
    Im Medizinischen Bereich stellt man dagegen Regeln auf, was als sauber zu gelten hat und das das zu realisieren ist. Das entspricht dann der logischen Programmierung (z.B. in Prolog).

    Gruß Mümmel



  • asc schrieb:

    (Weil für mich auch Datenkapselung zu OO gehört, und die sehe ich in C nicht gegeben)

    wieso soll das nicht gegeben sein?



  • supertux schrieb:

    asc schrieb:

    (Weil für mich auch Datenkapselung zu OO gehört, und die sehe ich in C nicht gegeben)

    wieso soll das nicht gegeben sein?

    asc ist c++ programmierer, ihm fehlen private, public, protected usw.
    🙂



  • Weil für mich auch Datenkapselung zu OO gehört, und die sehe ich in C nicht gegeben

    Kannst du's ohne Widerspruch denken?
    Ist C turing-vollständig?
    Wenn ja auf beides, dann kann man's in C machen.



  • u_ser-l schrieb:

    Shade Of Mine schrieb:

    Äh... Nein. Schlechter OO-Code ist keinen deut besser als schlecter XY-Code.

    Wer redet hier von schlechtem OO-Code ? OO zwingt den Programmierer, mehr *vorher* nachzudenken, das Ergebnis ist typischerweise besser wartbarer Code als ohne OO.

    Diese Hypothese ist nicht belegbar.
    Wenn ich vorher überleg, dann spielt es ekien ROlle ob ich rein funktional oder objekt orientiert prgrammiere oder wie auch immer



  • bgdnoy schrieb:

    Ist C turing-vollständig?

    hat das was mit datenkapselung tu tun, oder hab' nur ich den witz nicht verstanden?
    🙂



  • dfgdfgd schrieb:

    Wenn ich vorher überleg, dann spielt es ekien ROlle ob ich rein funktional oder objekt orientiert prgrammiere oder wie auch immer

    richtig.

    Allerdings gilt: Bei geschickter Definition der Datenstrukturen/Klassen eines Projektes werden die Algorithmen oft fast wie von selbst ersichtlich.

    Und genau diesen Mechanismus unterstützt die OO Methodik. OOP schont die Programmierer-eigenen Resourcen hinsichtlich Kurzzeitgedächtnis, IQ [und Kaffee 😃 ]


Anmelden zum Antworten