2016-05-11 26 views
-1

我對這種設計模式有疑問。前/後條件僅適用於在接口上聲明的方法,或者可以將它們直接放在普通類的方法上?或者更確切地說,這樣做是正確的?儘管如此,我知道前/後條件只是註釋,但我想知道它是否違反了DesignByContract結構。Java的合同設計模式

+0

通常,當它在某些模式中表示「接口」時,它不一定是「接口」,它可以是任何「接口」,甚至公共方法一個普通的「課程」。無論「DesignByContract結構」是什麼,它都不是該語言的一部分,因此您只能通過一些合同來了解如何使用它。 – zapl

+0

感謝您的信息。 :) – Altair2033

回答

1

與其他大多數主流語言一樣,Java本身不支持「按合同設計」。 Java接口只是避免多重繼承的一種解決方案,他們只是聲明一個類必須實現那個接口的方法。你可以通過帶註釋的契約來模仿設計(它們可以將自定義元數據附加到方法上),但是接下來我們將討論一個以Java構建的框架,而不是關於該語言的特性。

此外,東西不能同時是語言功能和設計模式。設計模式通常缺少語言功能。 (或者至少比僅僅使用語言功能更復雜的東西。)