- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
信息系统协会中国分会第一届学术年会
基于AOP的责任链模式改进研究木
杜沛然1, 颜志军2
(1.北京理工大学管理与经济学院,北京100081;2.北京理工大学,北京100081)
文摘t软件的设计模式一般都是通过面向对象的方法来实现的。这种OOP的实现方法能够完美的抽象出模式中的
角色,但是不同的角色中存在的共同行为却被分散在了各个类中,产生了类间耦合度高、代码混乱、代码冗余等问题。
AOP的思想提出了一种新的编程单位——方面,使我们能将角色中的共同行为抽象出来,从而解决了OOP方法实现
的设计模式中存在的问题。本文根据AOP思想提出了AOP和COP相结合的方法对责任链模式进行了改进,给出了
改进方案,弥补了面向对象方法实现的责任链模式中存在的缺陷。
关键词:责任链模式;面向方面的编程;面向对象方法
Method, 在OOM实现的责任链模式中,主要定义了三
现阶段面向对象方法(Object-Oriented
OOM)在信息系统的开发中占据了统治地位,很多个角色【6】。
人把过去的20年称之为“OO”的时代揸j。面向对(1)客户(Client):请求的发起者,向某一对象
象的分析和设计可以将真实世界的实体抽象成类 发出具体的请求。
和对象,从而实现了从问题域到软件的转换,这种
方法能完美的抽象出问题域中的角色。但是,不同 或接口实现。它主要定义了处理请求的方法
的角色可能有着共同的行为,这种共同的行为被称 和传递请求的方法。
为横切关注点。利用OO方法不能很好地抽象出横
切关注点,从而导致了类间耦合度高、程序代码冗 的子类,具体实现抽象处理者定义的方法。
余等问题。面向方面的编程思想就是为了解决横断 当它接到请求后通过某个标志或是条件来
关注的抽象问题而诞生的。 判断是否由自己来处理这个请求,若不是则
AOP的核心思想允许将分散在类中的共同行 把请求传递给下一个对象。
为分离出来,将OOP不能很好处理地横切关注点 由客户发送的请求在处理者之间的传递是通
抽象在“方面”之中。“方面”是在AOP思想中引 过责任链来完成的。责任链的定义在面向对象的实
入的一种新的编程单位,它使得横切关注点模块 现中主要有两种方式。
化,这对现有的设计模式产生了非常重大的影响。 (1)在客户对象中定义:这种方式是在客户类中
H.Lorenz由传统的VISHDR模式出发,引入AOP
就定义了所有可能实现请求的具体处理者
的思想调整了VISITOR模式中的变量,用面向方面 的对象。虽然不知道最后是由哪个处理者来
的Visitor
Beans模式重新实现了VISITOR模式【2】。
处理请求,但客户知道每个处理者的存在,
Hannemann和Kiczale以Observer设计模式为例提
并且定义了它们传递请求的顺序。
出了利用AOP改进设计模式的思路【l】。本文使用(2)在处理者对象中定义:这种方式是在处理者
AOP来改进责任链模式,改进的难点是如何识别横 类中定义一个类似于链表的链式结构来存
切关注点,准确地分离出责任链模式中不同角色的 储传递请求的顺序。从第一个处理者接到请
共同行为。 求后开始,每一个处理者对象都将判断是否
由自己来处理请求,如果不是就根据这个链
1 基于00的责任链模式
式结构将请求向下传递。
文档评论(0)