`
y806839048
  • 浏览: 1120534 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

相似业务不同渠道对应服务实现类的另一种获取方式

阅读更多

 

 多例注入就有多个用list接收,然后根据实现类中的渠道代码特征匹配传进来的渠道代码也可实现类似动态反射获取不同渠道的server实现类(借助数据库存储实现类和渠道的关系)一样的效果,但是这种有一定的弊端:即只允许一个渠道业务只有一个类实现着个接口,一旦有多个那么这个渠道业务永远只用无最先匹配到的哪个实现类(不同的业务用不同的接口,每个接口一个渠道就是一个实现类即可解决)。一般用数据库存储渠道和对应服务类的关系也是一个功能一个实现类

 

 

 

 

 

 @Autowired

    private List<LoanCallbackService> loanCallbackServices;    多例注入就有多个用list接收

 

 

 

    @Service

public class WFLoanCallbackServiceImpl implements LoanCallbackService

 

@Service

public class TbjLoanCallbackServiceImpl implements LoanCallbackService 

 

 

 

@Service

public class LoanCallbackFacadeServiceImpl implements LoanCallbackFacadeService {

 

    @Autowired

    private List<LoanCallbackService> loanCallbackServices;

 

    public LoanCallbackService determineTargetService(AppOfferLoanTask offerLoanTask) {

        OfferLoanChannelEnums offerLoanChannelEnums = OfferLoanChannelEnums.findCode(offerLoanTask.getFundChannel());

        for (LoanCallbackService loanCallbackService : loanCallbackServices) {

            if (loanCallbackService.getOfferLoanChannelEnum().equals(offerLoanChannelEnums)) {

                return loanCallbackService;

            }

        }

        throw new RuntimeException("找不到" + offerLoanChannelEnums + "对应的[LoanCallbackService]");

    }

 

    @Override

    public void offerLoanCallback(BankApiResultModel callbackContent, AppOfferLoanTask offerLoanTask) {

        determineTargetService(offerLoanTask).offerLoanCallback(callbackContent, offerLoanTask);

    }

}

 

  • 大小: 35.3 KB
分享到:
评论

相关推荐

    python相似性度量完整代码以及结果图片

    Jaccard相似系数也是一种常见的度量方式,尤其适用于集合数据。它定义为两个集合交集的大小除以并集的大小,可以用来衡量分类标签的相似性。 对于字符串相似度,有Levenshtein距离和Jaro-Winkler距离。Levenshtein...

    判断两棵二叉树是否相似

    如果一个节点为空而另一个不为空,则返回`false`。 2. **递归步骤**: - 检查当前节点的值是否相同; - 递归检查左子树是否相似; - 递归检查右子树是否相似。 #### 四、代码实现分析 接下来,我们将根据提供的...

    一个列表对应多种Item风格

    每个布局文件代表一种样式,例如:一种风格包含头像、用户名和时间,另一种风格可能只有文字信息。 - 在适配器(Adapter)中,我们需要重写`getViewTypeCount()`方法来返回Item的类型数量,这表示列表中有多少种...

    软件工程术语表

    抽象类是一种在面向对象编程中常见的概念,它不能被实例化,主要用于提供一个基础的类模板,供其他类继承并实现其中的抽象方法。抽象类通常包含至少一个抽象方法,即没有具体实现的方法,子类必须提供这些方法的具体...

    抽象类和接口的区别

    抽象方法是一种特殊的方法:它只有声明,而没有具体的实现。抽象方法的声明格式为: abstract void fun(); 抽象方法必须用abstract关键字进行修饰。如果一个类含有抽象方法,则称这个类为抽象类, 抽象类...

    弦相似算法计算 短文本相似度

    Jaccard相似度是另一种常见的文本相似度计算方法,尤其适用于短文本。它通过比较两文本集合交集的大小除以并集的大小来度量相似性。在处理短文本时,Jaccard相似度可以快速地给出两段文本是否有共同的关键词。 4. ...

    超级有影响力霸气的Java面试题大全文档

    接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它...

    设计模式精解-GoF23种设计模式解析附C实现

    - 实现案例:在C语言中可以通过函数指针数组来实现策略模式,数组中的每个元素代表一种不同的策略。 3. **State模式**:允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。 - 实现案例:...

    listview嵌套无限轮播+分类demo

    ListView是Android平台上常见的一种列表控件,用于展示大量的数据列表,尤其适合于数据项具有相似显示格式的情况。在这个“listview嵌套无限轮播+分类demo”中,开发者提供了一个结合了ListView和无限轮播功能的示例...

    两幅图像的特征相似性对比Python代码整合

    - PSNR是另一种评估图像质量的指标,它表示信号强度与噪声强度的比值。PSNR值越高,图像质量越好。在Python中,通常通过计算均方误差(MSE)然后转换得到PSNR。 6. **其他图像特征**: - **Histogram.py**:可能...

    LabVIEW专栏七、类

    继承允许一个类(子类)从另一个类(父类)获取属性和方法,从而减少代码重复并提高代码的重用性。子类可以扩展或覆盖父类的特性,以满足特定的需求。 6. **多态性**: 多态性是指不同对象可以对同一消息做出不同...

    【05-面向对象(下)】

    •抽象类代表了一种未完成的类设计,它体现的是一种模板。 •抽象类与模板模式。 接口的概念 •接口定义的是多个类共同的行为规范,这些行为是与外部交流的通道,这就意味着接口里通常是定义一组公用的 ...

    设计模式精解-GoF 23种设计模式解析附C++实现源码

    这种类型的模式属于创建型模式,因为它为创建对象提供了另一种方法。 - **应用场景**: 类初始化需要消耗大量的资源,这个资源包括数据、硬件资源等。 - **优点**: 可以给对象的新实例提供一个初始状态,复用现有...

    杰卡德相似度计算(java)

    杰卡德相似度是一种在信息检索和数据挖掘领域广泛应用的度量两个集合相似性的方法。它基于集合交集和并集的大小来计算相似度,特别适用于处理包含多个元素的集合,例如词袋模型中的词汇项。在Java编程中,我们可以...

    不同竞争地位的营销策略.ppt

    另一种常见的划分方式是市场占有率划分法,将企业分为市场领导者、市场挑战者、市场追随者和市场补缺者。 作为市场领导者,如微软、海尔和仪征化纤,他们的主要策略包括扩大总市场、保护市场分额以及扩大市场分额。...

    酒店前台客房管理系统,通过面向对象的思想设计的,很适合初学者

    多态性则允许不同的类对同一方法有不同的实现,例如,不同类型的房间可能有不同的定价策略或服务。 4. **封装与信息隐藏** 封装是面向对象的另一重要特性,它确保了对象的内部状态不被外部随意访问。在酒店系统中...

Global site tag (gtag.js) - Google Analytics