GContracts1.1.0支持前置/后置条件的继承
生活随笔
收集整理的這篇文章主要介紹了
GContracts1.1.0支持前置/后置条件的继承
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
2019獨角獸企業重金招聘Python工程師標準>>>
GContracts 1.1.0已于端午節前(6月14日)發布了。Andre Steingress 在其博文中,講述了該版本中修正的ISSUE-1:如何繼承后置/前置條件。
繼承后置條件
后置條件通常用于:在前置條件滿足的情況下,指定在某個方法中必須要做的工作。繼承后置條件的說明如下:
- 在繼承中,子類同樣繼承了父類的后置條件,但是子類不能覆蓋父類的后置條件;
- 如果在子類中重寫(Override)了某個方法,并為之添加了后置條件,那么子類的后置條件會跟父類的后置條件以And的關系整合在一起。
下圖有利于理解上述說明:
繼承前置條件
前置條件是在執行某個方法之前必須滿足的條件。1.1.0之前的版本,不支持前置條件的繼承,這就意味著:不管父類定義了什么前置條件,子類重寫方法時都必須定義新的前置條件。如下是1.1.0版本支持的繼承前置條件的說明:
- 在繼承中,子類也同樣繼承了父類的前置條件;
- 如果在子類中重寫(Override)了某個方法,并為之添加了前置條件,那么這個前置條件會削弱父類的前置條件,因為二者是或的關系。
下圖能夠幫助你理解前置條件的繼承:
后置/前置條件的繼承補充了諸如多態、動態綁定、重寫方法這些面向對象機制,并引導我們正確的使用這些概念。
除了ISSUE-1,該版本還修正了如下內容:
- ISSUE-14:優化了類的繼承;
- ISSUE-10:去掉getTypeClass()這個方法;
- ISSUE-13:清理了生成的AST。
- 若干bug。
如果你對GContracts 1.1.0感興趣,可以直接從Github下載或者從Maven資源庫獲取。
本文摘沒有涉及示例代碼,有興趣的可參見原文。
轉載于:https://my.oschina.net/groovyland/blog/5754
總結
以上是生活随笔為你收集整理的GContracts1.1.0支持前置/后置条件的继承的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 可怜的梅西
- 下一篇: 和我一起作Tess的windbg lab