2016-05-11 16 views
-1

Ich habe eine Frage zu diesem Designmuster. Die pre/post-Bedingungen gelten nur für die Methoden, die für eine Schnittstelle deklariert wurden, oder Sie können sie direkt auf die Methoden einer normalen Klasse anwenden. Oder genauer gesagt, ist es richtig zu so? Trotzdem weiß ich, dass die Pre/Post-Bedingungen nur Kommentare sind, aber ich möchte wissen, ob es nicht gegen die DesignByContract-Struktur verstößt.Javas Design by Contract Pattern

+0

Normalerweise wenn es "Schnittstelle" in einigen Mustern sagt, ist es nicht notwendigerweise eine "Schnittstelle", es kann jede "Schnittstelle" sein, sogar die öffentlichen Methoden von eine regelmäßige 'Klasse'. Was auch immer die "DesignByContract Struktur" ist, es ist kein Teil der Sprache, daher sind Sie nur an einen Vertrag gebunden, wie Sie es verwenden können. – zapl

+0

Danke für die Info. :) – Altair2033

Antwort

1

Java unterstützt "Design by Contract" nativ nicht wie die meisten anderen gängigen Sprachen. Java-Schnittstellen sind nur eine Lösung, um Mehrfachvererbung zu vermeiden. Sie deklarieren einfach, welche Methoden eine Klasse haben muss, die diese Schnittstelle implementiert.

Sie könnten Design nach Vertrag mit Anmerkungen imitieren (sie können benutzerdefinierte Metadaten an Methoden anhängen), aber dann würden wir über ein in Java erstelltes Framework sprechen und nicht über die Features der Sprache.

Auch etwas kann kein Sprachmerkmal und ein Entwurfsmuster gleichzeitig sein. Entwurfsmuster fehlen normalerweise Sprachfunktionen. (Oder zumindest etwas komplizierter, als nur langage features wie vorgesehen.)

Verwandte Themen