AGB  ·  Datenschutz  ·  Impressum  







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

Delphi Prism XE

Ein Thema von Scooty78 · begonnen am 22. Jun 2011 · letzter Beitrag vom 4. Jul 2011
Antwort Antwort
FredlFesl

Registriert seit: 19. Apr 2011
293 Beiträge
 
Delphi 2009 Enterprise
 
#1

AW: Delphi Prism XE

  Alt 3. Jul 2011, 19:50
Fördert dieses 'duck' nicht schlampige Programmierung? Nach dem Motto: "Ich bin zu faul, es richtig zu machen und nun gibt es auch eine Programmiersprache, die Faulheit unterstützt".
Das Bild hängt schief.
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.045 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#2

AW: Delphi Prism XE

  Alt 3. Jul 2011, 21:04
Wie viele andere Language Features muss man auch Duck Typing mit Verstand einsetzen.
Das Beispiel mit dem ToString macht das sehr schön deutlich. Es wird definiert, dass man diese Methode in dem übergebenen Parameter braucht.
Natürlich könnte man dieses Interface auch herkömmlich implementieren und für jedes Objekt eine eigene Klasse bauen, ist aber enorm umständlich und nicht unbedingt praktikabel.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
FredlFesl

Registriert seit: 19. Apr 2011
293 Beiträge
 
Delphi 2009 Enterprise
 
#3

AW: Delphi Prism XE

  Alt 3. Jul 2011, 21:34
Ah. Aber wenn irgend jemand später mal die Methode umbenennt oder verändert, klappt das mit dem duck-Zeugs nicht mehr. Ich halte das so ebenso elegant wie typecasting, denn eigentlich ist es ja nix anderes.

Und natürlich muss man alles mit Verstand einsetzen, aber nach der Logik wäre selbst C eine tolle Programmiersprache.
Das Bild hängt schief.
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)
Online

Registriert seit: 25. Jun 2002
Ort: Hausach
7.643 Beiträge
 
#4

AW: Delphi Prism XE

  Alt 4. Jul 2011, 10:39
Fördert dieses 'duck' nicht schlampige Programmierung? Nach dem Motto: "Ich bin zu faul, es richtig zu machen und nun gibt es auch eine Programmiersprache, die Faulheit unterstützt".
Nein. Das ist inbesondere dann wichtig, wenn man es in bestimmten Situationen gerne richtig machen würde, es aber nicht kann weil z.B. zugekaufte Klassen sealed sind oder ein Interface implementieren würden ohne es zu deklarieren.

Auch bietet sich z.B. Ducktyping an, wenn man die Nutzung fremder Bibliotheken testen will und diese z.B. keine Interfaces definieren. Konkret:
Ich definiere mir selber ein Interface das genau so aussieht wie die fremde Komponente, und nutze diese Komponente dann mit dem eigenen Interface mittels Ducktyping. Nun habe ich meinen Code zum einen von der fremden Komponente entkoppelt. Ich habe also eine konkrete Abhängigkeit weniger, was per se mal nicht schlecht ist. Zum anderen habe ich nun eine einfache Möglichkeit die Komponente zu mocken wenn ich meinen Code mit Unit-Tests abdecken will.

Die eigentliche Idee hinter Ducktyping in Prism ist aber folgende:
Ich will Code für .NET und Java schreiben. Nun definiere ich mir Interfaces gegen EINE der beiden Seiten. z.B. gegen System.IO.Stream in der .NET Welt. Nun kann ich diesen mittels Ducktyping direkt verwenden. Auf der Java-Seite wrappe ich nun das Java-Stream Objekt so, dass es mein Interface erfüllt. Oder andersrum. Auf jeden Fall spare ich mir auf einer der beiden Plattformen das wrappen, und das mit einer sauberen Lösung, da Typsicher.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
FredlFesl

Registriert seit: 19. Apr 2011
293 Beiträge
 
Delphi 2009 Enterprise
 
#5

AW: Delphi Prism XE

  Alt 4. Jul 2011, 19:46
Wie jedes gute Werkzeug: In den falschen Händen ist es nicht zu gebrauchen. In den richtigen Händen jedoch ziemlich mächtig.

Ich habe verstanden.
Das Bild hängt schief.
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)
Online

Registriert seit: 25. Jun 2002
Ort: Hausach
7.643 Beiträge
 
#6

AW: Delphi Prism XE

  Alt 4. Jul 2011, 20:42
Genau. Man muss halt aufpassen das wenn man den Hammer in der Hand hat nicht alles anfängt auszusehen wie ein Nagel.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Delphi Prism XE

  Alt 4. Jul 2011, 21:57
Genau. Man muss halt aufpassen das wenn man den Hammer in der Hand hat nicht alles anfängt auszusehen wie ein Nagel.
Man könnte ja erstmal lernen dmit umzugehn ... aber ob das hilft?


Die letzen Worte des Lehrmeisters: (vor einem unerklärlichen Schädelbasisbruch)
Wenn ich mit dem Kopf nicke, dann schlägst du zu.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu ( 4. Jul 2011 um 22:00 Uhr)
  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 12:40 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