Design patterns 以下模式是否有特定的名称?
我设计了一个框架来公开一些基于rest的Web服务。基类看起来像这不完全是代码Design patterns 以下模式是否有特定的名称?,design-patterns,Design Patterns,我设计了一个框架来公开一些基于rest的Web服务。基类看起来像这不完全是代码 public interface WSService { public void init(WSRequest request); public List<String> validate(); public void performAction(); public WSResponse generateResponse(); } 然后,我实现了一个WSProcessor
public interface WSService {
public void init(WSRequest request);
public List<String> validate();
public void performAction();
public WSResponse generateResponse();
}
然后,我实现了一个WSProcessor,它接受特定的类,然后执行方法并执行错误检查等
@RestResource(GET, "/getorders")
public Response getOrders (...){
WSService getOrders = new WSOrders();
WSRequestProcessor processor = new WSRequestProcessor(restInput);
processor.process(getOrders);
}
在WSRequestProcessor中,我使用process方法首先从rest请求中提取输入,进行应用程序级验证、一些头验证等,然后调用如下方法
public WSRequestProcessor{
...
public void process (WSService service){
service.init()
service.validate();
service.performAction();
service.generateResponse();
}
}
需要注意的是,WSRequestProcessor处理所有异常处理、一般错误响应创建等
这个模式很好地为我们提供了任何资源。最后,为了公开任何资源,我或任何开发人员所需要做的就是创建WS并在那里实现他们的业务逻辑 起初,这似乎只是基本的多态性,不过我明白了为什么您想知道是否有一种设计模式可以称为多态性。我想首先说这是一个松散的实体设计,然后说有一个关于getOrders方法设计的外观模式的基本形式,然后可能是一个命令模式 当我开始实现这一点时,我脑海中就有了CommandPattern。但是随着业务需求的发展,我最终设计了这样的东西。是的,我看到了。我认为你做每件事都是干净利落的。您在制作可重用代码方面做得很好。
public WSRequestProcessor{
...
public void process (WSService service){
service.init()
service.validate();
service.performAction();
service.generateResponse();
}
}