深入探索CaesarJ:面向方面编程的创新语言
1. 引言
在软件开发领域,面向方面编程(AOP)被广泛视为一种通过拦截相关事件执行来定位横切关注点,从而触发特定功能的技术。近年来,人们越发关注软件模块化的其他特性,如对变更的鲁棒性、定义明确的接口、信息隐藏以及可重用性。
CaesarJ是一种面向方面的语言,它对可重用性提供了强大支持。该语言将面向方面的切入点和通知构造与先进的面向对象模块化机制相结合。从面向方面的角度看,这种特性组合使大规模方面可重用,实现了方面组件化;从组件化的角度看,CaesarJ解决了将独立组件集成到应用程序中,同时无需修改待集成组件或应用程序的问题。
2. CaesarJ解决的问题概述
2.1 超越单个类的大规模模块化单元
大量研究表明,类作为模块化单元显得过小。大规模的功能通常涉及一组相关的类,因此抽象、后期绑定和子类型多态应在相互关联的类组层面得到支持。文献中使用了不同术语来表示这些相互关联的类组,如协作、层、团队和家族等,本文采用类家族这一术语。
为说明将抽象、后期绑定和子类型多态概念扩展到类家族层面的必要性,以一个用于显示层次数据结构的软件为例。该软件的数据模型为复合结构,节点随机标记为childA、childB等,布局采用固定大小的节点框,节点间连接为直线。
对该显示功能进行简单变体,如使节点框大小可根据显示内容调整、采用直角连接或使用颜色编码层次级别等。这些变体既可以单独使用,也能组合使用,这就需要增量式编程风格和灵活的组合机制。
在传统面向对象语言中,通过子类化节点和连接抽象来定义不同变体时,需要确保对节点和连接的引用能重新绑定到新定
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



