Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
ullmann hat geschrieben:Geht der Trend zu OOP? Wird mehr OO oder prozedural programmiert?
Habe auch erst kürzlich damit angefangen.
Suche mal hier im Forum nach Hallodri's OOP Plugin.
Wenn du dies installierst und mal seine Beispiele durchgehst, wirst du vieles direkt auf Anhieb verstehen.
Wenn du es einmal verstanden und genutzt hast, wirst du sicher fix daran gefallen finden. Mich hats sogar a bisserl süchtig gemacht.
Das Beispiel von Leonard finde ich auch sehr schön, könnte fast von mir sein
Wurde noch in PB3.94 verfaßt, deshalb noch etwas holprig!
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Ich hab das Beispiel irgendwo bekommen, wo ich eine Frage zum Thema "Was ist ein Interface und wie benutze ich es?".
@mk-soft
Ich find das mit DataSection auch besser verständlich. Nachteil ist, das man eventuell komunigations-schwierigkeiten bei dem Labels bekommt, wenn man ein Label im Hauptprogramm erstellt. Das will ich vermeiden.
Gibt es eigendlich noch andere Typen, wie man ein Interface mit seinen Procedure-Pointer einschreiben kann?
Ich hab das Beispiel irgendwo bekommen, wo ich eine Frage zum Thema "Was ist ein Interface und wie benutze ich es?".
@mk-soft
Ich find das mit DataSection auch besser verständlich. Nachteil ist, das man eventuell komunigations-schwierigkeiten bei dem Labels bekommt, wenn man ein Label im Hauptprogramm erstellt. Das will ich vermeiden.
@all
Gibt es eigendlich noch andere Typen, wie man ein Interface mit seinen Procedure-Pointer einschreiben kann?
Empfehlen kann ich nur für jedes eigende Objekt eine Datei anzulegen. Die Reihenfolge sollte meiner Meinung immer folgende haben:
- Interfaces deklarieren. Kann auch später sein, aber man sieht im Kopf gleich alle Methoden.
- Structure anlegen. Immer zuerst Pointer auf VTABLE dann die Daten
- Methoden Programmieren
- DataSection die Methoden zuweisen. (Wer es mit DataSection mag)
Gibt es eigendlich noch andere Typen, wie man ein Interface mit seinen Procedure-Pointer einschreiben kann?
Bekanntlicher weise führen 1000 Wege nach Rom. Bei der Programmierung Millionen. Die Regeln für den Aufbau eines Objekt kann man aber nicht umgeben. Der nächste Schritt ist es Objekte zu Programmieren die man in anderen Sprachen einbinden kann.
Ich bin inzwischen von den Interfaces ab. Prototypes in der Structure finde ich noch praktischer! Viele wege nach ROM
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Prototypes (Hab ich schon seit 3.9x mit Pointern und CallFunctionFast gemacht) haben den Vorteil:
-Sie scheinen einfacher zum deklarieren und zum Erstellen der Klassen sein,
aber sie haben auch die Nachteile:
-du musst von Hand den *this-Pointer übergeben, oder du nutzt das GetThis-Macro, was wiederum dazu führt, dass die Klasse nicht in allen Gebieten funktioniert.
-die Klasse selber wird größer, weil jede definierte Klassenvariable oder dynamische Klasse die VTablegröße an speicher verbraucht, weil die Methoden direkt in der Struktur liegen.
-die ganze Sache so sehr schnell unübersichtlich werden kann.
Deshalb sollte man alle Möglichkeiten mal erforschen, solange es nichts
natives gibt. Solange ich an keinem wichtigen Projekt sitze, werde ich diverse
Varianten einfach mal testen. Bei richtigen Projekten kann ich es dann
hoffentlich abschätzen, welcher Weg der richtige ist.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.