赞
踩
=======================================================
软件模块之间总是存在着一定的接口,从调用方式上,可以把他们分为三类:同步调用、回调和异步调用。
同步调用:一种阻塞式调用,调用方要等待对方执行完毕才返回,它是一种单向调用;
回 调:一种双向调用模式,也就是说,被调用方在接口被调用时也会调用对方的接口;
异步调用:一种类似消息或事件的机制,不过它的调用方向刚好相反,接口的服务在收到某种讯息或发生某种事件时,会主动通知客户方(即调用客户方的接口)。
回调和异步调用的关系非常紧密:使用回调来实现异步消息的注册,通过异步调用来实现消息的通知。
黑板系统(Blackboard system):
黑板模型主要由“黑板”、知识源(Knowledge Source)和控制机构三大部分组成。
黑板模型是一种适时推理模型,即系统能按“最适宜”的原则自行决定什么时候和怎样使用知识。在黑板模型中,解空间被组织成层次性结构,层次结构中每一层上的信息都表示局部解,相应层次上的知识模块对这种信息进行处理,生成更高级的局部解,直到最后的解。
理想的黑板模型中没有控制机制,知识源含有领域知识且是自驱动的。这样,每个知识源都“注视”着黑板上的状态信息,而且能“适时”地决定是否要对黑板进行操作。所以,在理想黑板模型中,各知识源实际上是并行执行的(这非常类似于现在的股票交易),但在现有的串行环境下这种并行却难以实现。因此,才增设了控制机制等方法把黑板变成串行系统(这又类似于拍卖过程)。当然,这样就限制了黑板模型的潜在功效。
面向对象设计原则:
设计原则名称 | 设计原则简介 | 重要性 |
单一职责原则 (Single | 类的职责要单一,不能将太多的职责放在一个类中。 | ★★★★☆ |
开闭原则 (Open-Closed | 软件实体对扩展是开放的,但对修改是关闭的,即在不修改一个软件实体的基础上去扩展其功能。 | ★★★★★ |
里氏代换原则 (Liskov | 在软件系统中,一个可以接受基类对象的地方必然可以接受一个子类对象。 | ★★★★☆ |
依赖倒转原则 (Dependency | 要针对抽象层编程,而不要针对具体类编程。 | ★★★★★ |
接口隔离原则 (Interface | 使用多个专门的接口来取代一个统一的接口。 | ★★☆☆☆ |
合成复用原则 (Composite Reuse | 在系统中应该尽量多使用组合和聚合关联关系,尽量少使用甚至不使用继承关系。 | ★★★★☆ |
迪米特法则 (Law of Demeter, | 一个软件实体对其他实体的引用越少越好,或者说如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用,而是通过引入一个第三者发生间接交互。 | ★★★☆☆ |
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。