C#策略模式运用,多角色折扣计算程序
策略模式主要在多个相似算法下代替if...else...,并且扩展性强
题目:购票系统,不同角色进入,有不同折扣,用if...else...能实现,但是后期维护新的角色折扣重写量大,故使用策略模式:
实现效果:

源码:


定义IDiscountStrategy接口:

定义各种折扣类继承该接口:


接着定义一个电影票类,CalculatePrice(IDiscountStrategy strategy)其实就是一个依赖注入点,该方法会根据折扣类型的不同自动计算打折后的金额:

这里利用反射创建对象。打开配置文件进行如下配置:

主程序:

实现折扣计算:


浙公网安备 33010602011771号