AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

OOP wirklich nicht möglich?

Ein Thema von Delbor · begonnen am 12. Okt 2017 · letzter Beitrag vom 20. Okt 2017
Antwort Antwort
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.192 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: OOP wirklich nicht möglich?

  Alt 12. Okt 2017, 16:29
Hi Neutral General

Zitat:
Du könntest zwischen die Query und der eigentlichen Klasse noch eine Art Factory stellen, der du die Query-Daten übergibst und die dir dann auf deinen Wunsch hin das gewünschte/benötigte Objekt erstellt. Intern entweder durch manuelle Zuweisung oder durch RTTI-Magie.
Das Hauptproblem ist, ich müsste dazu wohl fast das ganze Programm umstellen - einmal mehr. Das eigentliche Problem sind die Bilder. Die sind je nach Kamera zwischen 10 und 24MB gross. Allerdings nur die Rohdaten. Bitmaps sind dreimal grösser.

Mein Programm lädt die vorhandenen Daten vorerst ohne die Bilder. Die werden nachgeladen, wenn sie zur Bearbeitung benötigt werden. Dabei werden Thumpnails für die Navigation und Bitmaps für die grafische Bildbearbeitung erstellt. Bitmaps und Rohdaten werden anschliessend in einer externen DB auf einem beliebigen Laufwerk abgelegt (und dienen da gewissermassen als Backup).

Ich hab eine Factory eingebaut, die mir einen da registrierten Frame (ich habe mehrere verschiedene) zur Laufzeit erstellt und zurückliefert. So, wie ich das verstehe, geht dein Vorschlag genau dahin.
Bei dieser Framefactory sind diverse Frames registriert, die von meiner Anwendung in Abhängigkeit von dem, was der User tun will, alle gebraucht werden und deren Aufbau wegen der Bindung an dieses Programm in den Grundzügen gleich ist.
Das muss aber bei dem angestrebten Objekt nicht sein - oder wird in den wenigsten Fällen so sein.
Die gezeigte Klasse enthält weitere Klassen, die ihrerseits die Tabellen- und Feldstruktur einer DB-Tabelle abbilden.

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
Benutzerbild von TigerLilly
TigerLilly

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
1.241 Beiträge
 
Delphi 12 Athens
 
#2

AW: OOP wirklich nicht möglich?

  Alt 12. Okt 2017, 17:40
Hilft dir das Decorator Pattern hier nicht?
Du routest aus der neuen Klasse alles auf die alte durch. So kannst du nach und nach alles auf die neue Klasse umstellen.
  Mit Zitat antworten Zitat
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.192 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: OOP wirklich nicht möglich?

  Alt 12. Okt 2017, 18:23
Hi Tigerlilly

Ich muss gestehen, von Decorator Pattern hab ich jetzt von dir zum ersten Mal gehört. Aber nachdem, was mir Wikipedia verrät, wohl eher nicht.
Wenn du die von mir geposteten Klassen ansiehst, wirst du bemerken: Es handelt sich eigentlich um eine in einer Klassenstruktur zusammengefasste Ansammlung sprechender Variablen. Eine Klasse ist das einer Objektliste wegen, die auf diese Weise die Query-Ergebnisse bereithält, ohne das eine Query-Komponente während einer möglicherweise längeren DB-Sitzung dauernd offen sein müsste.

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch

Geändert von Delbor (12. Okt 2017 um 18:35 Uhr)
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.277 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: OOP wirklich nicht möglich?

  Alt 12. Okt 2017, 19:25
Hallo,
Zitat:
aber mit deutlich gekürzten Tabellennamen erstellt.
Das heisst, ich kann obige Klasse nicht verwenden
Was hat denn der Tabellenname mit einer Datenklasse zu tun?
Heiko
  Mit Zitat antworten Zitat
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.192 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: OOP wirklich nicht möglich?

  Alt 12. Okt 2017, 23:27
Hi hoika
Zitat:
Was hat denn der Tabellenname mit einer Datenklasse zu tun?
In diesem (und nur in diesem) Fall sehr viel. Lies dazu nochmal den Beitrag direkt vor deinem.
Delphi-Quellcode:
type
  TQueryResultClass = Class(TPersistent)
  private
    FidBild: Integer;
    FThumbnail : TMemorystream;
    FBitmap: TMemorystream;
    FBildDescribeTabelle : TBildDescribeTabelle;
    FKategoryTabelle : TKategoryTabelle;
...
  • FIdBild dürfte selbsterklärend sein - das Feld soll den PrimaryKey speicern.
  • FThumbnail ist ein Feld zur Aufnahme von Blob-Daten.
  • Ebenso FBitmap. Aber dann wirds interessant:
  • FBildDescribeTabelle ist vom Tip TBildDescribeTabelle, einer Klasse, die die gleichnamige Tabelle in der DB abbildet und eine Detailtabelle der BildTabelle darstellt. (1:n-Beziehung)
  • TKategoryTabelle hingegen bildet die gleichnamige Tabelle aus der DB ab, ist aber it der Bildtabelle in einer n:m-Beziehung.

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:28 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