首页 理论教育系统架构设计与组件通信的两种方式

系统架构设计与组件通信的两种方式

【摘要】:本系统框架最重要的一个思想就是组件。在面向对象的编程中,工厂模式是一种经常被使用到的模式。根据工厂模式实现的类可以根据提供的数据生成一组类中某一个类的实例,通常这一组类有一个公共的抽象父类,并且实现了相同的方法,这些方法针对不同的数据进行了不同的操作。图2-7工厂模式的工作原理组件之间的通信分为两种:系统方法调用和应用方法调用。

本系统框架最重要的一个思想就是组件。组件之间的互相调用协作才能完成系统的运作。系统中主要要有四种组件:输入组件(input)、输出组件(output)、控制组件(controller)、过滤组件(filter)。各组件之间的协作关系如图2-6所示:

图2-6 组件调用图

(1)输入组件:图中的in,它的任务是获得并生成基于查询的数据为将来的处理做准备,包括搜索引擎包装、测试集或组件返回的随机数据。

(2)输出组件:将结果呈现给用户并自动将结果基准化(benchmarking)。

(3)过滤组件:转换数据的方法。包括文本分类、聚类、词语填塞、停用词删除等。具体就是使用的一些算法

(4)控制组件:用来将其他的组件连接成一个处理过程,即怎样调用输入、过滤、输出组件,如何传输数据、转换数据,如何将数据以适当形式展现给用户。

组件调用本系统用到的是工厂模式(factory)。在面向对象的编程中,工厂模式是一种经常被使用到的模式。根据工厂模式实现的类可以根据提供的数据生成一组类中某一个类的实例,通常这一组类有一个公共的抽象父类,并且实现了相同的方法,这些方法针对不同的数据进行了不同的操作。

在图2-7中,X是基类,Xy和Xz继承了X类。而工厂类能够根据程序传递给它的数据决定生成那一个子类的实例。在右边定义了一个getClass方法,该方法需要参数a并返回一个X类的实例。对于程序员来说,返回的究竟是Xy还是Xz的实例并不重要,因为它们有相同的方法,只不过这些方法的内部实现不同罢了。

图2-7 工厂模式的工作原理

组件之间的通信分为两种:系统方法调用和应用方法调用。系统方法又包括组件生命周期管理和请求生命周期管理。运行时,每个处理链中,控制组件调用其他组件,处理链中的每个组件知道自己的继承者并期待从上个组件得到数据,每个组件会声明自己的能力以及它要求继承者应有的能力。只有当组件要求的能力成对的满足。能力通常用来表示特殊数据接口来实例化抽象组件。每个处理链只为所有的查询组合一次,这是的本地方法的调用很迅速。

以下是组件生命周期的说明图:

由图2-8可见,组件被工厂创建实例化后为多组查询服务,实现了资源复用,大大提高了系统的效率

图2-8 组件生命周期

图2-9是主要组件关系图,接下来会对此图中的每个组件进行详细说明。