自定义注解(三)支付渠道:消除if-策略模式+工厂模式+单例模式

自定义支付注解=消除if:策略模式+工厂模式+单例模式

代码取景,知识来源于视频《云析学院【路飞老师】-一次学习终身受用-如何正确使用设计模式写出优雅的代码》

1、定义注解标签 PayChannel

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface PayChannel {
   
    int channelId();
}

2、创建支付渠道策略接口及其不同实现类

1)定义价格接口PayStrategy

public interface PayStrategy {
   
    /**
     * 根据渠道计算价格
     * @param channelId
     * @param goodsId
     * @return
     */
    BigDecimal calRecharge(Integer channelId,Integer goodsId);
}

2)创建不同的价格接口实现类,
包名:com.yf.custom.pay.impl

工商银行

@PayChannel(channelId = 1)
public class ICBCBank implements PayStrategy{
   
    @Override
    public BigDecimal calRecharge(Intege
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值