Ideen für die objektorientierte Programmierung von Delphi
Liu Yizhu
Vorwort
Das erste Mal kannte ich Delphi nicht wegen der Delphi-Software der Borland Company, sondern weil ich das Wort in Platons klassischem Werk „Platons Dialoge“ „Verteidigung“ las.
Ein Freund von mir ging
In Delphi lebt das Orakel, der Gott der Prophezeiung. „Platons Dialoge“ berichtet, dass ein Freund von Sokrates nach Delphi ging, um Pythian, die Göttin der Prophezeiung, zu fragen, wer der weiseste Mensch sei. Die Pythianer sagten, dass niemand klüger sei als Sokrates. Sokrates war zutiefst verwirrt, weil er von Politikern, Dichtern, Philosophen und Künstlern umgeben war. Sind diese „Experten“ und „Behörden“ nicht klüger? Ich bin viel schlimmer als sie.
Sokrates besuchte diese „Experten“ und „Autoritäten“ einen nach dem anderen, stellte jedoch fest, dass sie oft selbstgerecht waren, sich selbst täuschten und vorgaben, Dinge zu wissen, die sie nicht verstanden. Durch den Besuch stellte Sokrates auch fest, dass er in vielen Aspekten sehr wenig wusste. Aber Sokrates gab nicht vor, es zu verstehen, er gestand seine Unwissenheit. Das ist es, was Pythian, die Göttin der Prophezeiung, wahre „Weisheit“ nennt.
Tatsächlich wurde diese Art von Weisheit nicht zuerst von den alten Griechen vorgeschlagen. Lange vor Sokrates hatte der Laotse unseres Landes es bereits auf den Punkt gebracht. Im Tao Te Ching heißt es: „Wer andere kennt, ist weise, und wer sich selbst kennt, ist weise.“
Das von uns verwendete Delphi ist bereits eine hervorragende Programmiersprache und ein hervorragendes Softwareentwicklungstool. Angesichts des tiefgreifenden und sich ständig weiterentwickelnden Delphi wissen wir jedoch über viele Aspekte immer noch sehr wenig. Aber verfügen wir beim Erlernen und Anwenden von Delphi auch über die Selbsterkenntnishaltung des Sokrates und die Weisheit, alles zu wissen?
Es gibt viele Freunde, die sich für Delphi entscheiden. Der erste Gedanke könnte sein, dass Delphi leistungsstark, einfach zu erlernen und zu verwenden ist. Sie behaupteten sogar, in drei Monaten Delphi-Kenntnisse zu beherrschen, und wagten es, in einem halben Jahr selbstständig Software zu entwickeln. Tatsächlich können sie lediglich Steuerelemente per Drag-and-Drop verschieben. Wenn sie von ihren eigenen Programmen berauscht sind, sind sie tatsächlich berauscht von Delphis exquisiter Weisheit und der Kontrolle anderer Leute. Diese Art von Delphi-Programmierer wird von anderen oft als „Zauderer“ bezeichnet. Aber sie scheinen sich selbst als Delphi-Meister zu betrachten.
Es gibt auch viele Freunde, die Delphi aufgegeben haben. Der erste Gedanke könnte sein, dass sie denken, Delphi sei nur ein RAD-Tool ähnlich wie VB. Ihrer Ansicht nach handelt es sich bei Delphi nur um Steuerungsprogrammierung und kann OOP nicht wirklich wie C++ oder Java implementieren. Sie bezweifeln, dass Delphi die Eigenschaften einer objektorientierten Programmiersprache aufweist und ob es objektorientierte Technologien wie Polymorphismus und Muster implementieren kann. Nur wer C++ oder Java nutzt, ist in ihren Augen ein echter Meister.
Was ist also ein echter Meister und wie kann man einer werden?
Werfen wir zunächst einen Blick darauf, was ein Kampfkunstmeister ist. Vielleicht können wir uns davon inspirieren lassen.
Wer Kampfsport oder Kampfsportromane liebt, weiß, dass es zwei Möglichkeiten gibt, Kampfsport zu betreiben: externes Training und internes Training. Äußeres Training von Fäusten, Tritten und Waffen, die Qualität von Fäusten und Tritten und Waffen sind der Schlüssel; internes Training von Qi, Training von Qi-Verfeinerung, Training von Geist und Rückkehr von Schwäche ist die Grundlage. Der größte Unterschied zwischen diesen beiden Anbaumethoden liegt im funktionalen Zusammenhang zwischen Zeit und Können, wie in Abbildung 1 dargestellt. Laienhaft ausgedrückt: In den ersten drei Jahren können diejenigen, die externe Fähigkeiten üben, diejenigen, die interne Fähigkeiten üben, leicht besiegen. Nach 15 Jahren können beide Seiten ein Unentschieden erzielen, unabhängig davon, wie Sie externe Fähigkeiten üben. Sie werden nicht in der Lage sein, mit denen zu konkurrieren, die interne Fähigkeiten üben. 20 Jahre später ist der Meister der inneren Stärke auf der Welt unbesiegbar. Der Grund liegt gerade in der dialektischen Beziehung zwischen „qi“ und „qi“.
„Waffen“ sind greifbare Gegenstände, und Schwerter, Gewehre, Schwerter und Hellebarden sind allesamt greifbare Waffen. Das Ausüben von Kampfkünsten im Freien ist untrennbar mit diesen greifbaren Waffen verbunden. Das Ausüben von Kampfkünsten ist das Training von Waffen. Daher verlassen sich Kampfkunstmeister, die Waffen und Schwerter verwenden, häufig auf die Qualität der Waffen.
„Qi“ ist eine unsichtbare Substanz, und alle Weisheit, magische Kraft und Gedanken sind unsichtbare Substanzen. Die interne Qigong-Kultivierung ist untrennbar mit diesen immateriellen Qualitäten verbunden. Qigong zu praktizieren ist Qi-Training. Daher sind wahre Kampfkunstmeister oft nicht auf bestimmte Waffen angewiesen. Für sie kann jeder greifbare Gegenstand entsprechend dem Geist in eine Waffe verwandelt werden. Ein faltbarer Fächer oder ein Fliegenbesen in seiner Hand ist genauso kraftvoll wie ein berühmter Speer oder ein Schwert, was auf die Gewinnung von Qi zurückzuführen ist.
Abbildung 1 Zeit- und Fähigkeitsfunktionsdiagramme zweier Anbaumethoden
In der Softwareentwicklung sind Programmierwerkzeuge „Instrumente“ und Programmierideen „Qi“.
Unter den Programmiertools befinden sich einfach zu verwendende Tools wie VB und PB; altmodische Tools wie FORTRAN und C++;
Im Programmierdenken gibt es objektorientiertes und prozessorientiertes Denken, die sowohl Weltanschauung als auch Methodik sind. Ersteres spiegelt die Art und Weise wider, wie Menschen über objektive Objekte denken, und letzteres spiegelt die Art und Weise wider, wie Maschinen über Anweisungen denken. In der kontinuierlichen Praxis der Softwareentwicklung wurde die Überlegenheit ersterer kontinuierlich reflektiert und bestätigt.
Das Beherrschen objektorientierter Programmierideen ist wie das Erlernen der wahren Bedeutung des Qi-Trainings. Ihre Bedeutung ist oft wichtiger als die Wahl der Programmiersprache!
Selbst wenn jemand objektorientierte Werkzeuge wählt, kann er kein echter Meister werden. Denn was er schätzt, ist die Qualität des „Qi“ und ignoriert die Kultivierung des „Qi“.
Tatsächlich „spielt es keine Rolle, ob ein System oder eine Sprache objektorientiert ist. Entscheidend ist, wie es objektorientiert sein kann und welche Methoden verwendet werden, um damit verbundene Vorteile zu erzielen.“ („Objektorientierte Methode: Prinzipien und Praxis“, Machinery Industry Press, März 2003)
Obwohl es einfach ist, Waffen zu üben, ist es schwierig, ein Meister zu werden. Obwohl das Qi-Training gut ist, sind die Ergebnisse langsam und die Einsamkeit ist unerträglich. Für normale Menschen ist es nicht möglich, seinen Geist klar zu verstehen und den richtigen Weg einzuschlagen. Daher üben viele Kampfkunstmeister zuerst die Waffen und dann Qi. Sie üben sowohl innerlich als auch äußerlich, um Erfolg zu haben.
Für Neulinge in der Welt der Kampfkünste ist es oft sehr wichtig, die Kraft der Waffen zu nutzen, um den Mangel an innerer Stärke auszugleichen. Aber wenn die Kampfkünste zunehmen und sich die innere Stärke entwickelt, sollte die Abhängigkeit von Waffen abnehmen. „Die Legende der Condor-Helden“ Yang Guo übt sich zum ersten Mal im Schwertkampf. Nachdem er seine inneren Fähigkeiten gemeistert hat, verwendet er gerne scharfe Schwerter als Schwerter verwendet werden. Für echte Meister spielt die Qualität des Schwertes also oft keine Rolle.
Ebenso durchläuft auch das Wachstum von Software-Mastern diesen Prozess. Programmieranfänger müssen eine gute Sprache wählen, die mit halbem Aufwand das Doppelte des Ergebnisses erzielen kann und gleichzeitig das Interesse weckt und das Selbstvertrauen stärkt. Sobald Sie mit einer Sprache vertraut sind, sollten Sie diese als Gelegenheit nutzen, sich objektorientierte Programmierideen anzueignen. Zu diesem Zeitpunkt kennen Sie nicht mehr die Grammatik, Funktionen und Klassenbibliotheken der Sprache selbst, sondern Denkmethoden wie Bindung, Polymorphismus, Muster usw., und analog dazu ist es nicht schwer zu lernen andere objektorientierte Sprachen. Echte Software-Meister, die hart an ihren internen Fähigkeiten arbeiten, den Mut zur Praxis haben und letztendlich Erfolg haben, sind nicht durch Programmiersprachen eingeschränkt. Sie kennen vielleicht ein Entwicklungstool, aber es ist nur ein Tool, das ihren unsichtbaren Geist in sich trägt. Sie sind aufgeschlossen, lernbegierig und können gut zusammenfassen. Ihre Ideen, Methoden, Modelle und sogar Philosophien gehen nicht nur über Programmiersprachen hinaus, sondern können auch die Praxis von Programmiersprachen leiten.
Delphi bietet eine Abkürzung für die interne und externe Weiterentwicklung von Software-Experten. Wenn Sie Delphi lernen und üben, können Sie die Vorteile von RAD und Kontrolle nutzen, um Ihre Gegner schnell zu besiegen. Wenn Sie Delphi lernen und üben, können Sie auch die OOP-Fähigkeiten, die Stärke von VCL und die Stärke nutzen Speck, um unbesiegbaren Erfolg zu erzielen.
Die weltberühmte Huashan-Schwertsekte war einst in „Schwertsekte“ und „Qi-Schule“ unterteilt. Die erstere übte nur Waffen und lehrte Bewegungen, die letztere übte auch Qi und baute das Fundament wieder auf.
Das Erlernen von Delphi ist wie das Üben der Huashan-Schwertkunst. Den RAD-Pfad zu nehmen ist „Schwertmeister“ und von OOP aus ist „Luftmeister“. Ersterer nutzt gerne Bedienelemente und interessiert sich für seltsame Techniken und Tricks; Letzterer liebt Objekte und ist an Methodenmustern interessiert. Ersteres strebt nach schnellen Ergebnissen, während letzteres hohe Ansprüche hegt.
Ich denke, dass Freunde, die Delphi für RAD wählen oder Delphi wegen OOP aufgeben, Delphi nicht wirklich verstehen. Delphi ist eine gute RAD-Entwicklungssoftware, aber es ist schwierig, ein echter Meister zu werden, ohne OOP zu lernen und tief in VCL einzusteigen. Ebenso ist Delphi ein authentisches OOP-Programmiertool, das in Kombination mit dem leistungsstarken RAD und dem effizienten Compiler mehr Vorteile und eine höhere Effizienz als andere OOP-Sprachen bieten kann. Wenn wir die sektiererischen Ansichten durchbrechen, „Qi“ und „Qi“ gemeinsam praktizieren und sowohl intern als auch extern üben können, glaube ich, dass es für Delphi-Programmierer nicht schwierig sein wird, von einem RAD-Quickie zu einem OOP-Meister zu werden und es schließlich zu werden stolz auf die Welt und beherrschen die Welt.
Zuvor habe ich kurz die dialektische Beziehung zwischen „Qi“ und „Qi“ besprochen. Beim Programmieren besteht einer der Schlüssel zur Kultivierung und Verbesserung der inneren Stärke darin, die Idee der objektorientierten Programmierung zu beherrschen. Tatsächlich denke ich, dass objektorientierte Programmierung der Schönheit der unsichtbaren Wahrheit der Straße am besten entspricht.
Warum sagst du das? „Die große Transformation der Antike entsteht mit dem Unsichtbaren“ (die zweite Reaktion in „Guiguzi“). Das Geheimnis des Qi liegt zunächst in seiner „großen Transformation“. Die große Veränderung ist die große Schöpfung von Himmel und Erde, die die gesamte Schöpfungs- und Veränderungskraft in sich vereint. Objektorientiertes Programmierdenken hat diese Qualität.
Laozi sagte: „Der namenlose Anfang von Himmel und Erde ist der Name der Mutter aller Dinge.“ Das Mysteriöseste an der sogenannten objektorientierten Denkweise ist, wie man Objekte aus „unbenannten“ identifiziert und definiert und wie man Objekte aus „benannten“ konstruiert und verwendet.
Für Softwareentwickler ist der Prozess des Verstehens objektiver Entitäten und des Analysierens und Entwerfens von Benutzeranforderungen der Prozess des Entdeckens und Definierens von Objekten, und es ist ein Prozess von namenlos zu berühmt. Allerdings unterscheiden sich die Objekte hier von Variablen oder Funktionen in prozessorientierten Prozessen. Klassen sind abstrakte Konzepte, definierbare „Namen“ und die Mutter von Objekten.
Infolgedessen brachte Tai Chi Liang Yi hervor, und Liang Yi brachte Bagua hervor. Durch die Vererbung und Ableitung von Klassen wurden alle Dinge geboren und Systeme gebildet.
Sogar das „Werkzeug“ als objektorientiertes Programmierwerkzeug verkörpert und trägt auch das „Qi“ objektorientierter Programmierideen.
Der erste Satz im Eröffnungskapitel von „Zhou Yi Shen Tong Qi“, einem klassischen Werk des inneren Energietrainings, das als „Sutra des Königs der ewigen Alchemie“ bekannt ist, lautet: „Das Universum ist das Tor von Yi, dem Vater aller Hexagramme.“ . Kan Li Kuang Guo, die Hauptachse des Bewegungszentrums, weiblich. Die vier Hexagramme von Mu gelten als „Pu“.
Aus Sicht der Softwareentwicklung bieten objektorientierte Programmierwerkzeuge zwar die Möglichkeit, unendlich viele Arten von Softwaresystemen zu erstellen, diese Unendlichkeit wird jedoch im begrenzten Rahmen ihrer eigenen Klassenbibliothek erstellt. Ob es sich um die VCL von Delphi, die Klassenbibliothek von Java oder das .net-Framework handelt, sie alle basieren auf einer ähnlichen Struktur wie Zhouyi Bagua. „Es ist einfach, Tai Chi zu haben, Tai Chi erzeugt zwei Yangs, zwei Yangs erzeugen vier Bilder und vier Bilder erzeugen Bagua.“
Taiji ist ein TObject in Delphi, es ist das Atom des Gebäudesystems, es ist der Vorfahre aller Klassen, es hat die grundlegenden Eigenschaften aller Klassen. In der Delphi-Programmierwelt generiert die Stammklasse TObject die persistente Objektklasse TPersistent und die persistente Objektklasse TPersistent die Komponentenobjektklasse TComponent, die umfangreiche Steuerelemente und leistungsstarke Funktionen für die Anwendungsentwicklung bereitstellt.
Der strukturelle Rahmen der Klassenbibliothek bietet uns jedoch nicht nur Komponenten, die als „Instrumente“ verwendet werden können, sondern, was noch wichtiger ist, diese Struktur realisiert den Aufbau und die Veränderung von „Qi“ durch die Beziehung und verwandte Funktionen zwischen Klassen und spiegelt Objekt wider. orientiert Die Essenz des Programmierdenkens. Bietet eine hervorragende Demonstration für uns, unsere eigenen Systeme zu erstellen.
Das zweite Geheimnis des Qi liegt in seinem „unsichtbaren Ursprung“. Unsichtbarkeit bedeutet Freiheit, Offenheit und Anpassungsfähigkeit. Die Idee der objektorientierten Programmierung ist voller unsichtbarer Weisheit von „Qi“.
Beispielsweise ermöglicht der Polymorphismus in der objektorientierten Programmierung Programmierern, vielseitigere und offenere Programme zu schreiben. Programmierer können eine rein virtuelle abstrakte Methode Stop() für das Fahrzeugobjekt schreiben. Eine solche universelle Stop()-Methode hat nichts damit zu tun, welches Auto gefahren wird. Programmierer können abgeleitete Klassen sich um die Vervollständigung der stop()-Methode kümmern und weiterhin ihre eigenen allgemeinen Prozeduren auf einer höheren Abstraktionsebene schreiben. Auch wenn sich die stop()-Methode des Car-Objekts völlig von der stop()-Methode des Bicycle-Objekts unterscheidet, kann der Programmierer auch Vehicle.stop() verwenden. Durch Polymorphismus kann das erstellte Objekt automatisch erkennen, welche geeignete Methode aufgerufen wird . . Dies verleiht dem Programm die Offenheit und Anpassungsfähigkeit von „Qi“.
Beim Praktizieren von Qigong wird betont, dass „die höhere Tugend Untätigkeit ist und nicht durch Beobachtung gesucht wird. Die niedrigere Tugend wird praktiziert und endlos genutzt.“
Im Denken der objektorientierten Programmierung ist „Shangde“ eine rein virtuelle abstrakte Methode mit später Bindung, eine Objektschnittstelle, die unverändert bleibt und sich an sich ständig ändernde Änderungen anpasst, ein hohes Maß an Abstraktion der Dinge und eine Metaphysik . „Shangde Wuwei“ bedeutet, dass auf der abstrakten Ebene die „virtuelle“ Seite der Programmierung durch Untätigkeit widergespiegelt wird, da zu diesem Zeitpunkt das tatsächlich verwendete reale Objekt nicht bestimmt werden kann (es kann sich um ein Autoobjekt oder ein Fahrradobjekt handeln). kann später erfunden werden) Neues Transportobjekt), „basiert nicht auf Beobachtung“ erfordert, dass wir aus den Zwängen spezifischer Bedürfnisse herausspringen und den spezifischen Implementierungscode nicht berücksichtigen. Daher gibt es in rein virtuellen abstrakten Methoden oder Objektschnittstellen keine Code-Implementierung.
Im Denken der objektorientierten Programmierung bezieht sich „Xiaode“ auf die Abdeckung rein virtueller abstrakter Methoden und die Implementierung von Objektschnittstellen. „Do it with morality“ bietet eine echte Code-Implementierung. „Es wird endlos genutzt“, um den sich ständig ändernden Bedürfnissen gerecht zu werden.
Polymorphismus ermöglicht es Programmierern, ohne großen Aufwand Objekte abzuleiten und Programme später zu implementieren. Es spielt keine Rolle, ob der Programmierer Anwendungen für Autos und Fahrräder erstellt und nicht weiß, dass es Lastwagen gibt. Programmierer können überschreibende stop()-Methoden für die Klassen Car und Bicycle schreiben, die die Klasse Vehicle erben. Auf diese Weise können im Programm die Auto- und Fahrradobjekte dynamisch an stop() gebunden werden, solange die erstellten Auto- und Fahrradobjekte in den Fahrzeugtyp konvertiert werden und die Stop()-Methode des Fahrzeugs verwendet wird. Methode, die den eigenen Anforderungen entspricht. Auch wenn später ein Truck-Objekt hinzugefügt wird, wird die Stop()-Methode von Vehicle weiterhin aufgerufen und es sind keine weiteren Änderungen am Programm erforderlich.
„Dinge sind natürlich, und Dinge sind kombiniert und getrennt. Einige sind nah, aber nicht sichtbar, und andere sind weit weg und können erkannt werden. Was nah ist, aber nicht gesehen werden kann, kann nicht verstanden werden; diejenigen, die weit weg sind, kann man sehen.“ , aber sie können in der Zukunft gesehen werden.“ („Guiguzi“) Kommt als Vierter an)
Obwohl objektive Dinge komplex sind und sich Benutzerbedürfnisse ändern, gibt es auch gewisse inhärente Gesetzmäßigkeiten.
Diejenigen, die nahe, aber unsichtbar sind, schauen nur auf die Verwirklichung spezifischer Funktionen vor sich und beachten nicht die allgemeinen Entwicklungsgesetze der Dinge. Sie haben nur isolierte Daten und mechanische Prozesse im Kopf Sie werden überrascht und es fällt Ihnen schwer, damit umzugehen. Eine solche Programmierung ist statisch, mechanisch und schwer zu warten und zu erweitern.
Wer aus der Ferne sehen kann, ist gut darin, Muster zu entdecken, Wert auf die Wiederverwendung von Code zu legen und organische Objekte und harmonische Beziehungen zu erkennen. Auch wenn sich die Bedürfnisse ändern, können sie ruhig und problemlos damit umgehen. Eine solche Programmierung ist dynamisch, flexibel, wartbar und erweiterbar.
Paul Kimmel sagte im „Delphi6 Application Development Guide“: „Es ist ein Fehler, objektorientierte Tools nicht objektorientiert zu verwenden. Die Verwendung von Delphi zum Schreiben strukturierter Programme kann schnell die Beta-Version erreichen ... Ihr Programm wird es möglicherweise nie sein.“ Ich kann der Betaversion entkommen.
Auch wenn Delphi keine objektorientierte Programmieridee hat, ist es so, als würde man „nicht bemerken, was gesagt wird“. Am Ende ist es immer noch „nahe, aber unsichtbar“, was es schwierig macht, ein hervorragendes System zu entwickeln. Nur durch hartes Üben, sorgfältiges Zusammenfassen und Beherrschen der umfassenden und tiefgreifenden Ideen der objektorientierten Programmierung können wir unser „Qi“ frei kontrollieren, „das, was wir gelernt haben, umkehren, was wir gelernt haben“ und schließlich den Zustand erreichen des „Wissens, was weit weg ist“.
Es ist mehr als 30 Jahre her, dass die erste wirklich objektorientierte Sprache Smalltalk (1972) erschien. Die meisten objektorientierten Programmierbücher im Buchhandel sind jedoch C++ und Java. Es scheint, dass es nur diese beiden objektorientierten Sprachen gibt. Tatsächlich gibt es 4 grundlegende Zweige echter objektorientierter Sprachen . Da es nur sehr wenige Bücher zur objektorientierten Programmierung mit Delphi gibt, müssen viele Programmierer Delphi aufgeben, um OOP zu lernen. Das ist wirklich eine große Tragödie von Delphi. Als ich Bruce Eckels „Thinking in Java“ las, beklagte ich mich, warum es kein solches Delphi-Meisterwerk gibt?
Tatsächlich stammt Delphi aus einer bekannten Familie und wurde von der Borland Company auf Basis von Object Pascal entwickelt. Jetzt verwendet Borland Company die Delphi-Sprache, um Object Pascal [1] ab Delphi7 zu ersetzen. Delphi ist C++ und Java in puncto OOP tatsächlich nicht unterlegen. Leser können sich auf den Anhang dieses Buches „Vergleich objektorientierter Programmiersprachen: Java, C++ und Delphi“ beziehen.
Zu diesem Zweck hatte ich immer vor, ein Buch über die objektorientierte Programmierung von Delphi zu schreiben, um meine Lern- und praktischen Erfahrungen in der objektorientierten Programmierung von Delphi zusammenzufassen. Dies ist jedoch eine sehr schwierige Aufgabe. Das gesamte Buch hat von der Konzeption bis zum Schreiben viel Zeit in Anspruch genommen und wurde erst im Mai dieses Jahres offiziell fertiggestellt. Zufälligerweise jährt sich in diesem Jahr auch die Gründung von Borland zum 20. Mal. Als Anwender von Borlands Produkt Delphi kann die Veröffentlichung meines Buches als Erinnerung daran betrachtet werden.
Dies ist ein Buch, das sich ausschließlich mit der objektorientierten Programmierung in Delphi befasst. Objektorientiert ist keine modische Verschönerung dieses Buches, sondern der Kern und die Gesamtheit dieses Buches.
Ausgehend von Kapitel 1 „Etablierung eines neuen objektorientierten Denkens“ versucht dieses Buch, mit der Geschichte und der aktuellen Situation der objektorientierten Programmierung zu beginnen und den Ursprung, die Entwicklung und die Grundkonzepte objektorientierter Programmierideen sowie die Anwendung darzulegen objektorientierter Modellierungsmethoden und UML. Dieses Kapitel soll den Lesern helfen, die grundlegenden Konzepte der objektorientierten Denkweise zu etablieren und die objektorientierte Denkmethode zu verstehen.
Kapitel 2 „Delphi-Objektmodell“ führt in die Grundkenntnisse der objektorientierten Programmierung von Delphi und seines Objektmodellstruktursystems ein.
In Kapitel 3 „Objekte verstehen“ werden die internen Mechanismen, der Lebenszyklus und die Interaktion von Objekten ausführlich unter drei Aspekten erörtert: der Natur, dem Leben und Tod sowie den Beziehungen von Objekten. Dadurch wird eine Grundlage für das Verständnis und die Beherrschung von Objekten durch den Leser gelegt.
Kapitel 4 „Verwenden von Objekten“ erklärt, wie man Objekte in der objektorientierten Programmierung von Delphi effizient nutzt. Hier konzentrieren wir uns auf die Verwendungsmethoden und -techniken von Schnittstellenobjekten, Komponentenobjekten, Objektsätzen und Objektparametern und führen eingehende Überlegungen zu häufigen Problemen bei der Verwendung und Entwicklung von VCL-Komponenten durch.
Kapitel 5, „Detaillierter Polymorphismus“, stellt das Konzept des Polymorphismus und seine Anwendung in der Programmierung vor. Anhand zahlreicher Beispiele werden wichtige Konzepte und Denkmethoden wie Überladen und Überschreiben, virtuelle Methoden und dynamische Methoden, abstrakte Klassen und abstrakte Methoden sowie die Klassentypkonvertierung erläutert.
Kapitel 6 „Analyse von Schnittstellen“ führt umfassend in die Programmierkenntnisse und Anwendungskompetenzen von Objektschnittstellen ein. Es erklärt die wichtige Rolle von Schnittstellen bei der Realisierung dynamischer Bindung und Mehrfachvererbung und demonstriert die tatsächliche Verwendung von Schnittstellen in der objektorientierten Programmierung.
Kapitel 7 „Forschung zur Kapselung“ verdeutlicht die Bedeutung und Anwendungsprinzipien der Kapselung in der objektorientierten Programmierung und diskutiert weiter die Implementierungsmethoden und Anwendungstechniken der Kapselung aus der Perspektive der logischen Kapselung bzw. der physischen Kapselung.
Kapitel 8 „Die Trennung von Schnittstelle und Geschäft realisieren“ bringt die objektorientierte Programmierung auf eine neue Ebene. In diesem Kapitel wird anhand eines evolutionären Beispiels der Trennung von Schnittstelle und Geschäft erklärt, wie man mithilfe von objektorientiertem Design ein Desktop-Programm in ein verteiltes mehrschichtiges System weiterentwickelt. In Kombination mit der neuesten Webtechnologie von Delphi wird erläutert, wie Sie Web Services zum Kapseln von Geschäftsobjekten, Web Form zum Kapseln von Schnittstellenobjekten und neue Technologien zum Kapseln alter Objekte verwenden und so plattformübergreifende Anwendungen realisieren.
Schließlich untersuchen die Kapitel 9 und 10 dieses Buches, „Ausführliche Einführung in VCL“, den internen Mechanismus von VCL und analysieren die Objektnutzung wichtiger Kategorien von VCL und bieten eine Referenz für Leser, die ihr Programmierniveau verbessern möchten Tiefe.
Der Struktur dieses Buches nach zu urteilen, lässt es sich in fünf Teile gliedern.
Teil 1, die ersten beiden Kapitel des Buches, sind eine Einführung in die objektorientierte Programmierung von Delphi. Leser, die bereits die Grundkonzepte der objektorientierten Programmierung beherrschen und Erfahrung in der Delphi-Programmierung haben, können diese beiden Kapitel überspringen.
Teil 2, Kapitel 3 und 4 sind der Schlüssel zur objektorientierten Programmierung in Delphi. Wenn Sie die Essenz des Objekts nicht erfassen, können Sie das Objekt nicht gut nutzen.
Teil 3, Kapitel 5 und 6 sind eine ausführliche Einführung in die objektorientierte Programmierung in Delphi. Fortschrittliche objektorientierte Techniken basieren alle auf dynamischen Bindungsmechanismen wie virtuellen Methoden, abstrakten Methoden und Objektschnittstellen sowie Typkonvertierungsmechanismen wie Aufwärtstransformation, Abwärtstransformation und Schnittstellentransformation.
Teil 4, Kapitel 7 und 8 sind die Anwendungen der objektorientierten Delphi-Programmierung. Um die Wartbarkeit, Skalierbarkeit und Wiederverwendbarkeit von Programmen zu erreichen, ist die Kapselung zu einer der wichtigen Ideen der objektorientierten Programmierung geworden. Durch die Kapselung werden die Schnittstelle und die Geschäftsobjekte getrennt, und aus der Trennung von Schnittstelle und Geschäft wird nach und nach eine verteilte mehrschichtige Architektur realisiert, und dann wird die plattformübergreifende Schnittstelle und die Geschäftsanwendung realisiert. Hier werden Lösungen von allgemeinen Anwendungen bis hin zu Unternehmensanwendungen auf Basis objektorientierter Programmierideen demonstriert.
Teil 5, der die Kapitel 9 und 10 abschließt, ist ein Verweis auf die objektorientierte Programmierung in Delphi. Vertrautheit mit VCL und das Erlernen von VCL sind für die Beherrschung von Delphi sehr hilfreich. Angesichts des derzeitigen Mangels an Insiderinformationen zu VCL ist das, was dieser Teil den Lesern bietet, möglicherweise begrenzt, aber selten.
Genauer gesagt ist dieses Buch nicht für „Experten“ geschrieben, sondern für Programmierer, die von RAD auf OOP umsteigen möchten, und für Freunde, die OOP über Delphi lernen möchten. Ich denke, es eignet sich besser als praktisches Delphi-Fachbuch für Fortgeschrittene. Deshalb bemühen wir uns beim Schreiben des gesamten Buches um eine einfache Verständlichkeit, mit Bildern und Texten, und eine große Anzahl von Beispielprogrammen (der Quellcode auf der dem Buch beiliegenden CD-ROM ist größer als 50 MB) wurde sorgfältig geschrieben Leser zum Lernen. Dieses Buch konzentriert sich auf den Kern von OOP, nicht auf alle Aspekte von Delphi. Das Lesen dieses Buches erfordert gewisse Grundkenntnisse in Delphi. Das Buch erfordert einige Spezialkenntnisse (z. B. COM+ usw.) und erfordert, dass der Leser für weitere Referenzen auf verwandte Bücher zurückgreift.
Es mag einige „Experten“ geben, die von diesem Buch enttäuscht sein werden. Ich habe das Gefühl, dass ich nicht dazu geeignet bin, ein Buch für „Experten“ zu schreiben, weil ich kein Experte bin und immer ein Neuling bleiben werde. Im Gegensatz zu anderen Einsteigern nutze ich Delphi schon länger und verfüge über etwas mehr Erfahrung und Erfahrung. Wenn Sie also in diesem Buch Ungenauigkeiten finden, korrigieren Sie mich bitte. Ich hoffe, Sie verzeihen mir etwaige Unzulänglichkeiten.
Netizen xzh2000 brachte es auf den Punkt: „Die Lebensdauer eines Buches ist sehr wichtig. Nur wenn der Autor die Zeit aufwenden kann, es regelmäßig zu überarbeiten und zu ergänzen, kann es zu einem Klassiker werden!“ Es stimmt, dass ein gutes Buch viele Male überarbeitet werden muss, bevor es zu einem Klassiker werden kann. Deshalb bin ich bereit, mir die wertvollen Vorschläge aller Leser anzuhören und hoffe, dass dieses Buch kontinuierlich überarbeitet und neu aufgelegt werden kann.