GContracts1.1.0支持前置/后置条件的继承

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值