【问题标题】:Dynamically add custom functionality to a service / service mediation向服务/服务中介动态添加自定义功能
【发布时间】:2014-07-12 18:36:25
【问题描述】:

我已经使用 spring 框架开发了一个通用的业务服务。必须从不同的渠道(即网络和移动渠道)访问此服务。每个渠道都有自己的业务规则,必须动态添加到通用服务功能中。例如,如果网络频道进行一些额外的验证,然后调用通用服务。如果移动频道呼叫服务 A,则服务 B,然后是通用服务。 我的问题是在不使用 ESB 的情况下实现此类服务中介的最佳设计模式/方式是什么?

【问题讨论】:

    标签: java spring design-patterns


    【解决方案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
     }
    }
    

    Decorator Pattern for IO

    Decorate Your Java Code

    【讨论】:

    • 我想使用配置文件添加此类功能并能够使用现有服务
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-09-13
    • 2014-04-05
    • 2012-02-18
    • 1970-01-01
    相关资源
    最近更新 更多