具有回报价值的策略模式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了具有回报价值的策略模式相关的知识,希望对你有一定的参考价值。

我尝试按策略模式创建付款。但我读过的所有文章都是这样的:

public interface PayStrategy {
    void pay(BigDecimal paymentAmount);
}

但如果我需要返回Single<RestResponse<PaymentResponse>>?这是正确的方法吗?

public interface PayStrategy {
    Single<RestResponse<PaymentResponse>> pay(BigDecimal paymentAmount);
}

在任何实际系统中,付款请求都将返回结果

答案

我建议你在Generic返回类型中实现你的问题陈述,如下所示:

public interface IPayStrategy<T> {
    T Pay();
}

public class PayStrategy1 :IPayStrategy<int> {
    public int Pay() { }
}

public class PayStrategy2 :IPayStrategy<String> {
    public String Pay() { .. }
}


public class Context<T> {
    private IPayStrategy<T> payStrategy;
    public setStrategy(IPayStrategy<T> strategy) { this.payStrategy = strategy; }

    public T doPayment() {
        return payStrategy.Pay();
    }
}
另一答案

在我看来这是正确的,因为这取决于你对合同的定义,如果你同意所有的策略都必须为我返回Single<RestResponse<PaymentResponse>>类型的结果它是正确的

以上是关于具有回报价值的策略模式的主要内容,如果未能解决你的问题,请参考以下文章

云计算

价值回报方法JPQL的最佳实践

Flutter - 如何在我的未来构建器文本小部件中获得价值回报

收益回报与回报选择

策略模式-设计模式

10大行业大数据应用痛点及解决策略