Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Kurze Frage zu OOP (https://www.delphipraxis.net/67430-kurze-frage-zu-oop.html)

Christian18 14. Apr 2006 10:01


Kurze Frage zu OOP
 
Hallo,

ich habe mal eine kurze frage zu OOP!!! OOP ist doch eigentlich nur dazu da, Quellcode redundanz zu vermeiden?!?!?! Oder??? Außerdem ist OOP noch sehr nützlich wenn man zum Beispiel bei Eingaben den Focus setzt, also damit der Nutzer sieht in welchem Edit Feld der Curser sich befindet. Also wenn man den Focus z.B. Blau machen will dann kann man doch dank OOP sein Programm so ausbauen, das man dies nur einmal in einer Superklasse Definiert und dann wenn man es zu gegebener Zeit ändern will, braucht man nur eine andere Frage einsetzen und dann wird es im ganzen Programm Automatisch verteilt. Sind meine ansichten gegebnüber OOP so richtig???

MFG Christian18

xaromz 14. Apr 2006 10:12

Re: Kurze Frage zu OOP
 
Hallo,

was Du schreibst, sind Teilaspekte von OOP. Dazu gehört aber noch mehr. Ich zähle mal einiges auf (ohne Anspruch auf Vollständigkeit):
  • Wartbarkeit und Strukturierung des Codes: jedes Objekt hat eine bestimmte Aufgabe und erfüllt diese im Idealfall komplett. Bei einer Änderung muss nur das entsprechende Objekt angepasst werden
  • Vererbung: Objekte lassen sich einfach um zusätzliche Funktionen erweitern
  • Kapselung: Für die Benutzung von Objekten ist es unwichtig, wie diese intern arbeiten; nur die nach außen geführten Schnittstellen sind interessant. Deshalb ist es möglich, verschiedene Objekte von einem Basisobject abzuleiten (-> Vererbung), die dann unterschiedliche Aufgaben erfüllen, aber die gleichen Schnittstellen haben und deshalb austauschbar sind
  • Komponenten: sind ohne OOP zwar möglich, aber Spaß macht das nicht
Wie gesagt, das sind nur einige Aspekte, mehr steht z. B. in der Wikipedia.

Gruß
xaromz

TheAn00bis 14. Apr 2006 10:21

Re: Kurze Frage zu OOP
 
Zitat:

Zitat von Christian18
OOP ist doch eigentlich nur dazu da, Quellcode redundanz zu vermeiden?!?!?! Oder??? Außerdem ist OOP noch sehr nützlich wenn man zum Beispiel bei Eingaben den Focus setzt, also damit der Nutzer sieht in welchem Edit Feld der Curser sich befindet.

Also ich kann mir Programmieren ohne OOP fast gar nicht mehr vorstellen und würde an komplexeren Programmen sicherlich kläglich scheitern.
Wenn ich ein Spiel programmiere, dann ist alles im Spiel ein eigenes Objekt. Der Spieler selber, jeder Gegner, jeder Baum etc. das bietet unendlich viele Vorteile: Die Objekte können sich praktisch selbst verwalten, prüfen selber, ob sie mit einem Gegner oder Gegenstand kollidieren, kommunizieren untereinander und nehmen durch ihre Attribute verschiedene Zustände ein, die dann ihr eigenes Verhalten, aber auch das Verhalten der anderen Objekte beeinflußen können.
Ich denke beim Ableiten von Klassen hast du zu mindest zum Teil recht, wenn du sagst, dass dadurch Redundanz vermieden wird, aber das "eigentlich nur" würde ich durch "zum kleinen Teil" ersetzen. ;)
OOP-Programme sind viel flexibler und man kann die Wirklichkeit viel besser und einfach abbilden.

sancho1980 14. Apr 2006 10:23

Re: Kurze Frage zu OOP
 
Hi,
meinem Vorgänger kann ich nur zustimmen und außerdem will ich hinzufügen, dass OOP nicht zwangsläufig mit der Programmierung von graphischen Benutzeroberflächen zu tun hat. OOP sagt einfach nur, dass du deinen Code schreibst, indem du vorher die "Welt" die du in deiner Software zu modellieren versuchst, in Objekte fasst, von denen du definierst, was diese Objekte haben (Eigenschaften) und was sie können (Methoden). Normalerweise nimmt diese Modellierung mehr Zeit in Anspruch als das Schreiben des eigentlichen Programms an sich aber behutsam geschrieben lassen sich so sehr komplexe Sachen schreiben, denn du hast einfach mal die Möglichkeit, dein Problem als Ganzes sehr gut in viele kleine Teilprobleme zu zerlegen. Die Welt besteht nun einmal auch aus Objekten und es gibt nicht etwa eine unsichtbare Hand, die alles bewegt, sondern das Handeln entspringt den Entscheidungen und Fähigkeiten von Personen und Objekten und genau da setzt OOP an.
Gruß,
Martin

TheAn00bis 14. Apr 2006 10:30

Re: Kurze Frage zu OOP
 
Was mir noch einfällt:

Ich hab die OOP sogar so gelernt, dass man das "Model", das "View" und das "Control" strikt trennt.
Das "Model" enthält dann die Objekte, also sagen wir du programmierst einen Bahnhof, dann enthält es "Bahnohf", "Züge", "Passagiere" etc.. Das "View" ist dann die reine Darstellung für den Benutzer, also häufig alles was mit VCL-Komponenten dargestellt wird oder mit irgendeiner Grafikschnitstelle.
Das "Conrtol" bildet die Brücke zwischen "Model" und "View".

Ich weiß nicht, ob das so gängig ist, aber ich halte diesen Weg für sehr übersichtlich.

sancho1980 14. Apr 2006 10:34

Re: Kurze Frage zu OOP
 
Aber das setzt wie gesagt voraus dass du 'ne grafische Benutzeroberfläche hast. Das mag zutreffen ist aber wie gesagt bei OOP kein Muss.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:28 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz