漫谈面向对象基石之开闭原则(OCP)
2010-09-30 22:45:17 来源:WEB开发网核心提示: 实现开闭原则的例子,其实我都不好意思自己举例子了,漫谈面向对象基石之开闭原则(OCP)(2),因为我正在使用office 2007写这篇博客,在Office2007的快捷工具栏中就有一项是加载项,我很高兴的就要来重构上面的代码了,既然个税的计算方法是一个变化的东西,就是说Office 2007能
实现开闭原则的例子,其实我都不好意思自己举例子了,因为我正在使用office 2007写这篇博客,在Office2007的快捷工具栏中就有一项是加载项,就是说Office 2007能将插件加载进来使用,如下图所示:
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 }
这个版本中我未做任何抽象,直接调用静态方法算了,可是一不小心开两会了,个税要调整了,于是个税的算法要进行调整了,怎么办呢,因为要少缴税,我很高兴的就要来重构上面的代码了,既然个税的计算方法是一个变化的东西,我就把它抽象出来吧。
- ››面向对象的JS-私有成员变量实现方式
- ››漫谈面向对象基石之开闭原则(OCP)
- ››面向对象的JavaScript (一、对象基础,使用函数来...
- ››面向对象数据库 db4o 之旅,第 4 部分: 使用 dRS
- ››对象存储不给高性能计算添堵
- ››面向 Java Web 应用程序的 OpenID,第 2 部分: 为...
- ››面向 Java 开发人员的 db4o 指南: 简介和概览
- ››面向 Java 开发人员的 db4o 指南: 查询,更新和一...
- ››面向 Java 开发人员的 db4o 指南: db4o 中的数据库...
- ››面向 Java 开发人员的 db4o 指南: 超越简单对象
- ››面向 Java 开发人员的 db4o 指南: 结构化对象和集...
- ››面向 Java 开发人员的 db4o 指南: 事务、分布和安...
更多精彩
赞助商链接