C#策略模式运用,多角色折扣计算程序

策略模式主要在多个相似算法下代替if...else...,并且扩展性强

 

题目:购票系统,不同角色进入,有不同折扣,用if...else...能实现,但是后期维护新的角色折扣重写量大,故使用策略模式:

 

实现效果:

 

 源码:

 

 

 

定义IDiscountStrategy接口:

 

 

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

 

 

 

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

 

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

 

 主程序:

 

 实现折扣计算:

 

posted @ 2022-02-24 15:04  周~锡林  阅读(218)  评论(0编辑  收藏  举报