Azureflame(东楚客)
What you are you did not see, What you see is your shadow.
    关于DbCDesign by Contract)契约式设计的思想,有人进一步提出了用AOPAspect-Oriented Programming)的方法来增强契约。理由是AOP的特点在于关注点分离,避免纠缠的代码出现在程序中;而DbC的目的在于面向对象的设计过程中程序中错误情况的处理,在一点上,异常处理与之有共通的地方,但问题是:处理错误/异常的代码与业务逻辑代码是混杂在一起的,这使得代码/模块/组件的可复用性受到极大的限制。因而,对错误/异常处理这样的横切点(Cross-Cut),正是AOP的用武之地。

       另一个问题,C#中应用Observer模式时,使用了一种变体——Publish/Subscribe模式,具体的实现从语法层面来讲,就是在.Net环境下使用多点委托(multicast delegate)提供的回调(callback)及异步事件处理(asynchronous event handling)机制,这里的delegate似乎很像Java中用于消息处理的匿名内部类。由于这是一种比较复杂的设计模式,有人提出要利用DbC来检查Publish/Subscribe各接口之间的关系。


posted on 2005-11-17 21:38  东楚客  阅读(384)  评论(0编辑  收藏  举报