面向对象设计模式学习笔记四策略模式

本文是面向对象设计模式的学习笔记,重点介绍了策略模式。策略模式允许在运行时选择不同的算法,避免了复杂的条件判断,增强了代码的可扩展性和可维护性。以税法计算为例,展示了如何使用策略模式来应对政策变化,遵循开放封闭原则。
摘要由CSDN通过智能技术生成

为什么需要策略模式

在软件构建过程中,某些对象使用的算法可能多种多样,经常改变,如果将这些算法都编码到对象中,将会使对象变得异常复杂;而且有时候支持不使用的算法也是一个性能负担。

 

举例说明

税法计算案例:

程序员要有一个时间轴的概念,不能静态的看待问题。

如果增加对法国的税法,则需要更改代码,重新编译、部署

违背了开放封闭原则:对更改封闭,对扩展开放

enum TaxBase {
	CN_Tax,
	US_Tax,
	DE_Tax,
	FR_Tax       //更改
};

class SalesOrder{
    TaxBase tax;
public:
    double CalculateTax(){
        //...
        
        if (tax == CN_Tax){
            //CN***********
        }
        else if (tax == US_Tax){
            //US***********
        }
        else if (tax == DE_Tax){
            //DE***********
        }
		else if (tax == FR_Tax){  //更改
			//...
		}
        //....
     }
    
};
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值