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
-1
A
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
- 1. Design by Contract-Bibliothek (Schnittstelle) Gedanken?
- 2. Design by contract/C# 4.0/ArgumentierenNullException
- 3. Design by Contract, und generische Ausnahmen
- 4. Welche Werkzeuge verwenden Sie für Design by Contract?
- 5. Wie machen Sie Design by Contract in Perl?
- 6. libGDX Design Pattern
- 7. Singleton Design Pattern: Fallstricke
- 8. Decorator Design Pattern Speicherdiagramm
- 9. CFML Design Pattern Ressourcen?
- 10. Syntax highlight design pattern
- 11. Singleton Design Pattern Implementierung
- 12. Was sind die Best Practices für die Programmierung von Design by Contract?
- 13. Design by Contract in C für die Verwendung in automatisierten Theorem-Test
- 14. Wie könnten Sie Design-by-Contract in Clojure speziell oder funktionale Sprachen im Allgemeinen implementieren?
- 15. Kann Design-by-Contract auf dynamische Sprachen genauso einfach angewendet werden wie auf statisch typisierte Sprachen?
- 16. Argumentprüfung oder Design-by-Contract in Java (GWT). Wo soll man anfangen?
- 17. Design by Contract: Können Sie eine Schnittstelle mit einem Protokoll haben?
- 18. Visitor Design Pattern in OCaml
- 19. Design Pattern Rich-Code-Basis?
- 20. Observer Design Pattern vs "Listeners"
- 21. Wählen Sie ASP.NET Design Pattern
- 22. Composite Design Pattern Diagramm Skizze
- 23. Design Pattern Referenzimplementierungen in Ada?
- 24. Observer Design Pattern-Klasse Ausgabe
- 25. State Pattern Design mit OOP
- 26. Warum Abfrage Objekt Design Pattern
- 27. Javascript Strategie Design Pattern Problem
- 28. Was ist der Unterschied zwischen Front Controller Design Pattern und MVC Design Pattern
- 29. Design Pattern für einmalig geladene Konfigurationseigenschaften?
- 30. java prototype design pattern objekt kreation
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
Danke für die Info. :) – Altair2033