早在90年代初,我参与了包含大量"代理"类的系统的设计和实现.该系统运行良好,并且可以合理维护.现在,我正在与新工作环境中的人们争论,他们声称"对象应该是名词".是否有好的文章解释为什么代理商是一个坏主意?什么区分Agent和Object更详细(我得到了一般的想法,但具体是什么被弃用?)
最好不要整本书:我刚刚开始阅读Bertrand Meyer关于面向对象软件构建的书,要花点时间才能完成.
根据Tomasz和Niko的评论,我改变了主题(从询问指针到文章),现在邀请人们直接回答,而不是指向文章.
维基百科说
面向代理的编程(AOP)是一种编程范式,其中软件的构建以软件代理的概念为中心。与面向对象编程相反,面向对象编程的核心是对象(提供带有可变参数的方法)(http://en.wikipedia.org/wiki/Active_object)
然而,我不认为 AOP 与 OOP 分开,我个人使用 JADE(http://jade.tilab.com/,它是实现 FIPA 标准的最著名的框架之一(http://www.fipa.com/)。 org),据我所知,JADE 代理可以拥有对象(作为 java 类的实例),可以利用这些对象来执行复杂的功能。从这个意义上说,代理的概念类似于活动对象的概念(http://en .wikipedia.org/wiki/Active_object)。主要区别在于代理在黄页注册表中发布他们提供的服务的描述,并且能够通过共享语言(可能基于本体论)进行通信。此外,移动性可以是提供这样一个正在运行的代理可以迁移到不同的设备,保留其执行状态。然而,这种复杂性可以在线程的顶部实现,从而扩展了面向对象的范式,而不是与之相反。
1990 年,Yoav Shoham 在他的人工智能研究中首次使用了代理的概念。
在这个链接http://www.infor.uva.es/~cllamas/MAS/AOP-Shoham.pdf中,您可以找到 Shoham 出版物的摘录,其中他说
OOP 提出将计算系统视为由能够相互通信并且具有处理传入消息的单独方式的模块组成,而 AOP 通过修复模块(现在称为心理状态)的状态(现在称为心理状态)来专门化框架。主体)由精确定义的成分组成,称为信念(包括关于世界的信念,关于自己的信念,以及关于另一个人的信念),能力,选择,以及可能的或其他类似的概念。比较包括这些主体之间的告知、请求、提供、接受、拒绝、竞争和协助。这个想法直接借用自言语行为文献(Grice 1989;Searle 1969;Austin 1962)。
关键词是AOP专门针对OOP框架。正如我所说,它扩展了 OOP(尽管不一定是一种好的方式)。我想当您处理可能需要扩展以应对高度可变的任务量的计算密集型系统时,您可能希望使用这种架构,这种架构非常易于设计和实现。在其他情况下,AOP 可能有点过大,但这取决于您的设计师/架构师的敏感性。
| 归档时间: |
|
| 查看次数: |
372 次 |
| 最近记录: |