java - 有返回值的策略模式

标签 java android design-patterns strategy-pattern

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

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

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

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

在任何真实的系统中,支付请求都会返回结果

最佳答案

我建议您在通用返回类型中实现问题陈述,如下所示:

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();
    }
}

关于java - 有返回值的策略模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49027772/

相关文章:

java - 如何抽象转换类型

java - 长时间运行android后台服务

java - 在 java 和 scala 中使用 protobufs 的问题

android - 多行换行的 EditText(无换行符)

java - Android:如何获取 Google Drive 中上传的文件 URL

java - 在 java 中链接异步调用的最优雅的解决方案?

design-patterns - 函数中的 GoLang 实时连接

java - 如何使用 Selenium 和 Java 通过 PageFactory 等待元素不可见

java - 在空格上拆分字符串,但如果空格位于引号内则不拆分(引号部分可以类似于 xxx"x x x"xxx

java - 是否可以在另一个方法 "AsyncTask"中运行 "AsyncTask"方法?