技术开发 频道

SCA软件架构设计理念分析

    (3)更复杂的工厂模式

    在Tuscany SCA软件中有Artifact Professor的创建是更为复杂的工厂模式,Artifact Professor是描述如何处理Artifact的接口(在SCA中,最基本的部件是Artifact,即包含外部的artifact,也包括内部的artifact,Artifact是Contribute的原子,我们部署我们的应用到SCA上,那么每个应用就叫一个Contribute)。下面是类图:

    这儿你可以看到美学在软件架构设计中的应用,呵呵!

    代理模式的使用

    如图所示,ExtensibleURLArtifactProcessor 和 ExtensibleStAXArtifactProcessor分别是接口URLArtifactProcessor和 StAXArtifactProcessor的实现类,它们都包含相应的ArtifactProcessorExtensionProcessor接口,即包含相应的工厂,外部的调用是首先调用这个代理类,从而获取这个工厂并创建出相应的ArtifactProcessor。从而实现了代理模式。

public Object read(XMLStreamReader source) throws ContributionReadException {
    
// Delegate to the processor associated with the element qname
    QName name = source.getName();
    StAXArtifactProcessor
<?> processor =

    (StAXArtifactProcessor
<?>)processors.getProcessor(name);
    
if (processor == null) {
    
return null;
    }

    
try {
    
return processor.read(source);
    }
catch (XMLStreamException e) {
    
throw new ContributionReadException(e);
    }
    }

    
0
相关文章