AGB  ·  Datenschutz  ·  Impressum  







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

"F"-Prefix beim TJSONUnMarshal

Ein Thema von Der schöne Günther · begonnen am 1. Okt 2014 · letzter Beitrag vom 2. Okt 2014
Antwort Antwort
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.550 Beiträge
 
Delphi 12 Athens
 
#1

AW: "F"-Prefix beim TJSONUnMarshal

  Alt 1. Okt 2014, 18:55
Aber ohne jemanden der weiß wie es geht (z.B. ReadState und WriteState), kann man nunmal nicht alles "richtig" deserialisieren.

Entweder man stellt etwas falsch wieder her (Pointer und Handle gespeichert) oder man speichert zuviel.
z.B. Eine Komponente, die einen Kreis auf ein internes Bitmap gemalt hat
* Man kann nun gern das Bitmap Pixel für Pixel speichern
* oder man lässt sich den Zustand "Kreis bei Position X:Y mit D" geben. (welcher vielleicht in einem Pointer rumliegt, dessen Datenformat du garnicht kennst)

Oder eine Font-Instanz in der Komponente, aber mit ParentFont=True ... deine Funktion würde den nun speichern, aber die Klasse weiß, daß es eigentlich sinnlos ist.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 1. Okt 2014 um 19:00 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: "F"-Prefix beim TJSONUnMarshal

  Alt 1. Okt 2014, 19:47
Darum hat man TComponent ja auch die Funktionalität mit dem Streamen mitgegeben.

Denn für diese Art von Klassen ist das Marshalling definitiv nicht gedacht - kann man mal ausprobieren, lässt man aber schnell wieder die Finger von.

Sehr wohl gedacht ist das Marshalling aber z.B. für die kleinen, leichten Klassen wo es Sinn macht, diese z.B. über eine "Leitung" zu schicken, um diese an anderer Stelle wieder zum Leben zu erwecken.

BTW: Es ist sehr einfach Beispiele für die Sinnlosigkeit von jedem beliebigen Werkzeug/Objekt/Entität zu finden:
  • Ferrari -> Kann nicht den Acker pflügen! Also Mist!
  • Delphi -> Kann nicht für xxx-Exot OS kompilieren! Also Mist!
  • Ich -> Kann kein Chinesisch! Also Mist!
Man muss einfach nur das Betrachtende in einem sinnfreien Kontext betrachten, schon ist es obsolet.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#3

AW: "F"-Prefix beim TJSONUnMarshal

  Alt 1. Okt 2014, 20:02
Sehr wohl gedacht ist das Marshalling aber z.B. für die kleinen, leichten Klassen wo es Sinn macht, diese z.B. über eine "Leitung" zu schicken, um diese an anderer Stelle wieder zum Leben zu erwecken.
Klingt für mich ein bisschen, als hätte man Records neu erfunden.
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#4

AW: "F"-Prefix beim TJSONUnMarshal

  Alt 1. Okt 2014, 21:21
DTO sind die neuen Records. Alte Idee mit neuem Namen.

Abzulehnen ist so eine "no code" Klasse natürlich nicht, dazu ist sie zu praktisch. Man kann doch aber auf hohem Niveau darüber philosophieren, ob die zu serialisierenden Daten als private- (WT)F-Felder, oder über public properties (als DTO) besser umzusetzen sind.

Wenn man nicht auf die Nase fallen will, sind DTO sowieso zwingend. Finde ich.

@Schöner Günther: Ich würde eben keine *Felder* als Serialisierung nehmen, sondern Eigenschaften. Stellen wir uns mal vor, in XE39 kommen dann auto properties, also
Delphi-Quellcode:
Type
  TFoo = class
    Property Bar : Integer Read; Write;
Und was ist dann mit der 'F' Idee? B*lsh*t. Ehrlich.
  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 10:46 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