Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi OOP zum 2. -- Lösungen | Anregungen | Repository -- (https://www.delphipraxis.net/3719-oop-zum-2-loesungen-%7C-anregungen-%7C-repository.html)

APP 26. Mär 2003 21:00


OOP zum 2. -- Lösungen | Anregungen | Repository --
 
Angeregt durch den Thread Keiner verwendet Objektorientierung ??? möchte ich noch einmal einen Versuch wagen, OOP zu entzaubern:

Mir schwebt vor, wie auch im Titel steht, dass ihr OOP-Profis da draußen, uns Unwissende :mrgreen: helfen könnt, mehr OOP in unsere Codes zu bringen!

Was ich möchte:
  • Dass uns die OOP-Profis Beispiele, Tips oder Anregungen aus der Praxis geben, wie man OOP einsetzten könnte.
Was ich nicht möchte:
  • Keine Tutorials á la "Wir haben eine Klasse Geometrische Figur, davon leiten wir nun eine Klasse Kreis, Dreieck und was weiß ich noch ab..."
    Das verstehe ich und kann es auch programmieren, was mir total fehlt ist der Praxisbezug, eine sinnvolle Anwendung/Idee eben.
  • Keine Komponenten-Umbau/Ableit Orgien, daß ist zwar auch OOP, aber ich möchte ganz "unten" anfangen (dafür gibt es auch viele Tutorials Komponenten erstellen).

Daher mein Aufruf an alle OOP-Profis, postet Eure Code-Schnippsel, Ideen und Anregungen, damit wir OOP-Laien aus der Praxis lernen können! :coder:

p.s. Das soll keine Nötigung zu einem OOP-Lehrgang sein, davon gibt es schon genug,
sondern nur die Bitte um ein paar kurze Codezeilen u.ä. -nur als Anregung sozusagen. :P

mirage228 27. Mär 2003 05:44

in meinem progamm benutze 6 verschlüsselungen, die alle über die TMainClass angesteuert werden.

Delphi-Quellcode:
type
  TMainClass = class
  // Variablen
  // Methoden ; virtual;
end;
und die 6 verschlüsselungen werden nach tmainclass erzeugt, z.b.

Delphi-Quellcode:
type
  TRSA = class(TMainClass)
  // Variablen
  // Methoden (get und set); override;
end;
so muss ich im gesamten programm nur z.b. einmal schreiben
Delphi-Quellcode:
 
var MainClass: TMainClass
und wenn ich eine verschlüsselung benutzen will
Delphi-Quellcode:
MainClass := TRSA.Create;
so muss ich im gesamten code nur MainClass benutzen! Das spart zeit und arbeit.


ich hoffe, das istn gutes praxisbeispiel!

Luckie 27. Mär 2003 07:20

@APP: Was erwartest du? Ein Buch / Tutorial kann dir die Theorie erstmal nur allgemein vermitteln und es dann an einem exemplarischen Beispiel verdeutlichen. In der Praxis wirst du immer wieder neue Lösungen suchen müßen, da du jedes mal wieder ein anderes Problem zu lösen hast bzw. eine andere Aufgabenstellung hast. Es können hier noch so viele Leute ihre OOP-Lösungen präsentieren, bei deinem nächsten Programm mußt du doch wieder was eigenes entwickeln. Und da ist es halt gut, wenn man die Theorie drauf hat und die Grundlagen kennt. Darauf kann man dann auf bauen und seine eigene Lösung für das Problem entwickeln. Und dann hilft dir die OOP-Lösung eines anderen zu einem vollkommenen anderen Problem auch nicht.

APP 27. Mär 2003 14:55

@Luckie,
da bin ich sozusagen ein Dinosaurier :pale: der vom Aussterben bedroht ist, denn, ich wiederhole mich, ich habe die Theorie drauf, ich kann Komponenten ableiten und neue Eigenschaften einführen, ich verstehe die OOP in der Theorie, aber irgendwie fehlt mir der Praxisbezug (das AHA-Erlebnis, oder das "jetzt hat es Klick gemacht Erlebnis") in der klassischen OOP.
Meine kleinen Tools und DB-Schnittstellen schreien nicht gerade nach OOP.
Ich will auch keine Lösungen von Anderen kopieren, sondern sie als "Inspiration" sehen.

Aber als Einstieg ist das, was mirage228 schrieb gerade richtig, er hat exakt verstanden was ich will!

svehei 27. Mär 2003 15:11

stell dir vor du hast eine klassensammlung die du alle z.b. von tobject - default - abgeleitet hast.

diese klassen werden nun alle als DataStorage-Klassen eingesetzt, also nur um properties zu schreiben und zu lesen. Alle DataStorageObjekte sollen aber ueber "SaveTO..."-prozeduren Ihre Properties in eine Datenbank oder in ein XML-File schreiben.

da du jetzt aber noch nicht weisst, in welche datenbank (oder was auch immer) du schreiben moechtest und bekanntlicherweise jede datenbank propriaetaere funktionen hat, ist es sinnvoll fuer jede Speicherung eine eigene prozedur zu implementieren. z.b. SaveToMySQL, SaveToOracle, SaveToXML, .....

wenn du nun alle deine klassen nicht von tobject ableitest, sondern von einem eigenen object (z.b. TMyDataStreams) das wiederrum von tobject abgeleitet ist, koenntest du die prozedure in dieser klasse EINMAL implementieren und alle deine DataStorageObjekte koennten ueber diese prozedur verfuegen. genauso wunderbar ist das bei aenderungen. einmal aendern, alle geerbten objekte haben die aenderung.

das soll jetzt nur mal ein beispiel sein, fuer die anwendung von oop gibts es sicherlich noch etliche tausende weitere praxisbeispiele....

APP 27. Mär 2003 15:19

@svehei,
schön langsam mach es leise "Klick" und das Brett vorm Kopf verschwindet :idea:

Danke.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:52 Uhr.

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