以下模式是否有特定名称?

时间:2018-04-26 14:32:02

标签: design-patterns

我设计了一个框架来公开一些基于休息的web服务。基类看起来像这样(不是确切的代码)

public interface WSService {
    public void init(WSRequest request);
    public List<String> validate();
    public void performAction();
    public WSResponse generateResponse();
}

每个新服务都实现此Web服务并实现其特定逻辑

public class WSOrders implements WSService {...}

然后,我实现了一个WSProcessor,它接受​​特定的类,然后执行方法并执行错误检查/等。例如

@RestResource(GET, "/getorders")
public Response getOrders (...){
    WSService getOrders = new WSOrders();
    WSRequestProcessor processor = new WSRequestProcessor(restInput);
    processor.process(getOrders);    
}

WSRequestProcessor中,我使用流程方法首先从休息请求中提取输入,执行应用程序级别验证(某些标头验证等)。然后称这样的方法

public WSRequestProcessor{
...

    public void process (WSService service){
        service.init()
        service.validate();
        service.performAction();
        service.generateResponse();
    }
}

需要注意的是WSRequestProcessor处理所有异常处理,一般错误响应创建等。

这种模式非常适合为我们公开任何资源。在一天结束时,为了公开任何资源,我必须(或任何开发人员)创建WS<ResourceName>并在那里实现他们的业务逻辑。

1 个答案:

答案 0 :(得分:1)

起初这似乎只是基本的多态,但我明白为什么你想知道是否有一种设计模式可以称之为。我首先要说这是松散的SOLID设计,然后说有一个基本形式的外观模式,用于设计getOrders方法,然后可能是一个Command模式。