我使用spring框架开发了一个通用的业务服务。必须从不同的渠道,即网络和移动渠道访问该服务。每个渠道都有自己的业务规则,必须动态添加到通用服务功能。例如,如果网络渠道进行一些额外的验证,然后调用通用服务。如果移动信道呼叫服务A,则服务B然后通用服务。 我的问题是在不使用ESB的情况下实现此类服务调解的最佳设计模式/方式是什么?
答案 0 :(得分:1)
我认为您正在寻找装饰模式,您可以在运行时附加额外的责任。您可以做的是
Public Class GenricValidationService extends ValidationService{
public void Validate(){
// do stuff here
}
}
Public Class WebChannelService extends ValidationService{
public WebChannelService (ValidationService validationService){
this.validationService= validationService;
}
ValidationService validationService;
public void Validate(){
genericValidationService.validate();
// extra validation
}
}
类似地
Public Class ServiceB extends ValidationService{
public ServiceB (ValidationService validationService){
this.validationService= validationService;
}
ValidationService validationService;
public void Validate(){
validationService.validate();
// extra validation
}
}
见