因此,您需要声明您的服务组件将支持什么接口。不错,但是当您需要组件实现调用另外的服务该怎么做呢?那么,我们需要做两件事。首先,其他服务组件需要声明其自身接口,同时您自己的组件需要声明将调用什么接口。这样,当您将这些黑盒连接起来时,系统将能确保某种服务所需内容就是您正在连接的服务所提供的内容。现在,我们将介绍一些技术细节来使其更加清晰。
一个组件具有一个或多个引用。在您编写服务组件的实现时,切勿直接调用另外的服务组件,这样做会在您的代码中形成对其他组件的依赖关系。您的实现应该调用引用。引用 具有名称,表示其他服务所最终具有的那些接口。最后,在您将黑盒连接在一起时,也会将引用连接到另外的黑盒上。很快,您的实现不仅知道使用哪些引用,而且不会依赖于任何特定的组件。在您组装模块时,您可完全灵活地组装可重用的部件,前提是其引用与目标组件的接口相匹配。
例如,图 4 显示了来自业务流程实现内部对 Travel Agency Partner 引用的调用,图 5 显示了 SimpleProcess 组件中引用的定义和连线。因此,在对 Travel Agency Partner 进行调用时,将使用连线另一端的服务。
在组装编辑器中,您可右键单击某个组件,并选择 Add - Reference 以添加新的引用。这将打开对话框并允许您为引用选择适当的接口。