WEB开发网
开发学院软件开发C语言 漫谈面向对象基石之开闭原则(OCP) 阅读

漫谈面向对象基石之开闭原则(OCP)

 2010-09-30 22:45:17 来源:WEB开发网   
核心提示: 实现开闭原则的例子,其实我都不好意思自己举例子了,漫谈面向对象基石之开闭原则(OCP)(2),因为我正在使用office 2007写这篇博客,在Office2007的快捷工具栏中就有一项是加载项,我很高兴的就要来重构上面的代码了,既然个税的计算方法是一个变化的东西,就是说Office 2007能

实现开闭原则的例子,其实我都不好意思自己举例子了,因为我正在使用office 2007写这篇博客,在Office2007的快捷工具栏中就有一项是加载项,就是说Office 2007能将插件加载进来使用,如下图所示:

漫谈面向对象基石之开闭原则(OCP)

Snagit在word中添加了一个插件,这种插件技术就是一种遵循OCP的实现;再说我们整天使用的Visual Studio 它的可扩展程度更高,可以开发很多类型的工具对他进行扩展。

为了本文的完整性,我还是厚着脸皮,用重构的方式举一个遵循开闭原则的微不足道的实现。

下面的举例实现的场景是个税的计算:我的第一个版本是这样子的

01 class Program 
02 { 
03     static void Main(string[] args) 
04     { 
05         float salary = 10000; 
06   
07         Console.WriteLine("收入是{0}的人应缴个税是{1},",salary, GetTax(salary)); 
08     } 
09   
10     static float GetTax(float salary) 
11     { 
12         return (float)(salary * 0.03); 
13     } 
14 } 

这个版本中我未做任何抽象,直接调用静态方法算了,可是一不小心开两会了,个税要调整了,于是个税的算法要进行调整了,怎么办呢,因为要少缴税,我很高兴的就要来重构上面的代码了,既然个税的计算方法是一个变化的东西,我就把它抽象出来吧。

Tags:漫谈 面向 对象

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接