AGB  ·  Datenschutz  ·  Impressum  







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

Frage zu Propertys

Ein Thema von ByTheTime · begonnen am 2. Jun 2014 · letzter Beitrag vom 4. Jun 2014
Antwort Antwort
Seite 3 von 4     123 4      
alda

Registriert seit: 24. Mär 2014
Ort: Karlsruhe
93 Beiträge
 
Delphi XE6 Architect
 
#21

AW: Frage zu Propertys

  Alt 3. Jun 2014, 17:15
Zitat:
Und dieser ist imho überflüssig. Interfaces sind sinnvoll aber nicht immer und für Alles.
Klar, Ausnahmen bestätigen die Regel. Worauf ich hinaus will ist, dass man eben nicht sagen kann, dass es pauschal "überflüssig" ist, sofern man den Verwendungszweck nicht kennt.

Die Frage die der TE stellte, war:
"Aber was spricht denn gegen property Name: String read FName write FName; ?"

Und mein geschilderter Anwendungsfall wäre somit ein Punkt, der m.E. dagegen spricht :>
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#22

AW: Frage zu Propertys

  Alt 3. Jun 2014, 20:44
@alda

Ich will jetzt nicht mit dem Spruch kommen, dass alles was Delphi-Entwickler vormachen gleich richtig ist, aber guckt man sich die Delphi-Units an, wird nirgendwo über Setter oder Getter auf eine Feldvariable zugegriffen. Die Regel ist property SomeProp: integer read FSomeProp write FSomeProp; . Nur wenn noch etwas Code dazukommt wird es anders gemacht.

Der Entwickler macht es also vor, warum soll man es anders machen?
  Mit Zitat antworten Zitat
ByTheTime

Registriert seit: 24. Sep 2011
Ort: Frankfurt
297 Beiträge
 
Delphi XE2 Architect
 
#23

AW: Frage zu Propertys

  Alt 4. Jun 2014, 00:57
So stell ich mir eine lebhafte Diskussion vor
Lukas
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.737 Beiträge
 
Delphi 6 Enterprise
 
#24

AW: Frage zu Propertys

  Alt 4. Jun 2014, 10:01
Da ich ausschließlich über Interfaces arbeite....Und das ist eben der Grund warum ich den "überflüssigen" Code bevorzuge.
Jo. Bei Delphi ist das dann so. Blöd, aber isso. Hauptsache testbar und -so wie Du das machst- klare Zugriffe über Interfaces.
Hallo und guten Morgen,

kann mir jemand mal erklären wie das gemeint ist mit den Interfaces und der Testbarkeit?

Eine Klasse mit einer Property, die direkt auf die Feldvariable schreibt/liest, kann man nicht testen? Und es geht doch um eine Klasse, wie kommen da jetzt Interfaces ins Spiel?
Ralph
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#25

AW: Frage zu Propertys

  Alt 4. Jun 2014, 10:08
Er meint keine Properties und dafür nur Getter/Setter, die er durch Interfaces definiert. ( Die Implementierung/Attribute ist/sind dann black box)
Markus Kinzler
  Mit Zitat antworten Zitat
OlafSt

Registriert seit: 2. Mär 2007
Ort: Hamburg
284 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#26

AW: Frage zu Propertys

  Alt 4. Jun 2014, 11:58
Ist es nicht letztlich eine Frage des Anwendungsfalles - wie so oft ?

Ich persönlich benutze absolut überhaupt keine Interfaces, weil es schlicht keine Notwendigkeit bisher dazu gab (Faulheit in Sachen Speicher nicht mehr freigeben ist keine für mich ). Ergo sind für mich Getter/Setter, die nichts weiter tun, als Werte einzuschreiben bzw. wieder auszulesen absolut überflüssiger Code, der nur Platz und Laufzeit kostet. Folglich habe ich faktisch nur "propf"'s im Code.

Ganz anders unser Interface-Mensch, der alles und jeden in ein Interface steckt - der ist gezwungen, Getter/Setter zu haben, selbst wenn sie nur einschreiben bzw. auslesen (was für mich bereits ein Grund ist, Interfaces möglichst zu meiden - unnötigen Code produzieren zu müssen).

So hat jeder sein Kreuz zu tragen
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#27

AW: Frage zu Propertys

  Alt 4. Jun 2014, 12:05
was für mich bereits ein Grund ist, Interfaces möglichst zu meiden - unnötigen Code produzieren zu müssen).
Interfaces sind jetzt nicht dazu gedacht, einem das Programmiererleben noch etwas schwerer zu machen, sondern eher dafür, um mit anderen Programmen kommunizieren zu können und die Sichtbarkeit für die Außenwelt zu regeln. In der DLL willst/musst Du vielleicht auf public member der Klasse zugreifen, aber außerhalb der DLL nicht. Und da übergibst Du das Objekt eben als interfaced object und schon ist alles geschützt.

Interfaces nur um der Interfaces willen ist genauso intelligent wie Setter nur um der Setter willen.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Frage zu Propertys

  Alt 4. Jun 2014, 12:18
kann mir jemand mal erklären wie das gemeint ist mit den Interfaces und der Testbarkeit?
Man nutzt z.B. im Programm nur das Interface und kann zum Testen die Klasse/Objektinstanz hinter dem Interface austauschen.

Zum Testen wird einfach eine andere Klasse verwendet, welche zusätzliche Debugfeatures enthält oder die immer nur definierte Testdaten liefert, so daß man immer wieder das gleiche Verhalten hat, welches sich leichter testen lässt, da man dann immer das selbe Ergebnis rausbekommt.


z.B. du hast einen Parser/Auswertecode, welcher getestet werden soll, dann wird in diesem Fall die Klasse ausgetauscht, welche die zu verarbeitenden Daten liefert.
Man kann auch die Anzeigeklasse austauschen, welche die verarbeiteten Daten gleich prüft.

Grund: Man testet nur den einen Zwischenteil, da drumrum alles gegen funktionierend Testklassen ausgetauscht wurde.

So lässt sich jeder Teil einzeln prüfen und man weiß genau wo der Fehler ist.
Schaust du zum Test aber nur auf die Anzeige, dann kann der Fehler sonstwo sein.
$2B or not $2B

Geändert von himitsu ( 4. Jun 2014 um 12:23 Uhr)
  Mit Zitat antworten Zitat
alda

Registriert seit: 24. Mär 2014
Ort: Karlsruhe
93 Beiträge
 
Delphi XE6 Architect
 
#29

AW: Frage zu Propertys

  Alt 4. Jun 2014, 12:36
Zitat:
@alda
Ich will jetzt nicht mit dem Spruch kommen, dass alles was Delphi-Entwickler vormachen gleich richtig ist, aber guckt man sich die Delphi-Units an, wird nirgendwo über Setter oder Getter auf eine Feldvariable zugegriffen. Die Regel ist property SomeProp: integer read FSomeProp write FSomeProp; . Nur wenn noch etwas Code dazukommt wird es anders gemacht.

Der Entwickler macht es also vor, warum soll man es anders machen?
Wie gesagt, man kann nicht pauschal sagen, dass es gut oder schlecht ist. Das bestätigst Du ja mit Deiner Aussage Genau so kannst Du nicht sagen, dass es gut ist weil die Delphi-Entwickler es so machen, das ist doch kein Argument. Es geht doch darum wann etwas sinnvoll ist und wann nicht und nicht *wer* es implementiert hat. Nur weil die z.B. (achtung, Behauptung! ) Delphi-Entwickler nicht Test-Driven entwickeln, heißt das nicht dass das sinnvoll ist und ich es auch nicht mache.

Zitat:
Hallo und guten Morgen,
kann mir jemand mal erklären wie das gemeint ist mit den Interfaces und der Testbarkeit?
Eine Klasse mit einer Property, die direkt auf die Feldvariable schreibt/liest, kann man nicht testen? Und es geht doch um eine Klasse, wie kommen da jetzt Interfaces ins Spiel?
Testen kannst Du es schon, aber NUR diese Klasse, da Du jeden der mit der Klasse arbeitet an die Klasse bindest. Wenn Du von außerhalb mit einem Interface arbeitest, welches von Deiner Klasse implementiert wird, dann kennst Du die Klasse hinter dem Interface nicht und hast somit in komplexeren Tests kein Problem die Klasse hinter dem Interface auszutauschen, da Du überall nur mit dem definierten Interface darauf zugreifst und nicht direkt über die Klasse.

Zitat:
Ist es nicht letztlich eine Frage des Anwendungsfalles - wie so oft ?

Ich persönlich benutze absolut überhaupt keine Interfaces, weil es schlicht keine Notwendigkeit bisher dazu gab (Faulheit in Sachen Speicher nicht mehr freigeben ist keine für mich ). Ergo sind für mich Getter/Setter, die nichts weiter tun, als Werte einzuschreiben bzw. wieder auszulesen absolut überflüssiger Code, der nur Platz und Laufzeit kostet. Folglich habe ich faktisch nur "propf"'s im Code.

Ganz anders unser Interface-Mensch, der alles und jeden in ein Interface steckt - der ist gezwungen, Getter/Setter zu haben, selbst wenn sie nur einschreiben bzw. auslesen (was für mich bereits ein Grund ist, Interfaces möglichst zu meiden - unnötigen Code produzieren zu müssen).

So hat jeder sein Kreuz zu tragen
Da würde mich mal interessieren wie komplexere Tests bei Dir aussehen, wenn Du garkeine Interfaces verwendest? Ich hab diesen Fall z.B. sehr oft.

Zitat:
So stell ich mir eine lebhafte Diskussion vor
Find ich super, da ich ansonsten keine Möglichkeit habe mir Delphi-spezifische Meinungen einzuholen
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.737 Beiträge
 
Delphi 6 Enterprise
 
#30

AW: Frage zu Propertys

  Alt 4. Jun 2014, 13:02
Zitat:
Hallo und guten Morgen,
kann mir jemand mal erklären wie das gemeint ist mit den Interfaces und der Testbarkeit?
Eine Klasse mit einer Property, die direkt auf die Feldvariable schreibt/liest, kann man nicht testen? Und es geht doch um eine Klasse, wie kommen da jetzt Interfaces ins Spiel?
Testen kannst Du es schon, aber NUR diese Klasse, da Du jeden der mit der Klasse arbeitet an die Klasse bindest. Wenn Du von außerhalb mit einem Interface arbeitest, welches von Deiner Klasse implementiert wird, dann kennst Du die Klasse hinter dem Interface nicht und hast somit in komplexeren Tests kein Problem die Klasse hinter dem Interface auszutauschen, da Du überall nur mit dem definierten Interface darauf zugreifst und nicht direkt über die Klasse.
Bei uns wird nicht mit Unit-Tests (das ist ja hier im Zusammenhang mit Test gemeint, denk ich) gearbeitet. Nicht weil wir keine Fehler machen, sondern weil... (kann da jetzt kein Agument angeben, dass nicht irgendwer wieder entkräften könnte, aber es läuft auf "Zu Aufwendig für unsere kleinen Projekte" und "So ne neumodische Krams hammer he noch nie jemacht" hinaus).

Deswegen kenn ich mich da nicht aus und frag vllt. dumm. Aber wenn ich statt mit Interfaces mit abstrakten Vorfahren-Klassen arbeite könnte ich doch dagegen testen? Und im Gegensatz zu Interfaces kann es in abstrakten Klassen ja Felder geben und dementsprechend direkt durchgreifende Properties
Und wenn ein Nachfahre mal nicht direkt durchgreift, sondern getter und setter hat, merk ich das von aussen noch nicht mal.

Aber wie gesagt, kenne Unit-Testing nicht und vermute mal, dass diese Frameworks dafür mit Interfaces arbeiten?
Ralph
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


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 16:04 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz