Thema: Prism Delphi Prism XE

Einzelnen Beitrag anzeigen

Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.640 Beiträge
 
#29

AW: Delphi Prism XE

  Alt 4. Jul 2011, 11: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