-
C#教程之C#教程之C# BAD PRACTICES: Learn how to make a good code by(3)
这是我们的新的重构的代码:
1 public decimal ApplyDiscount(decimal price, AccountStatus accountStatus, int timeOfHavingAccountInYears) 2 { 3 decimal priceAfterDiscount = 0; 4 priceAfterDiscount = _factory.GetAccountDiscountCalculator(accountStatus).ApplyDiscount(price); 5 priceAfterDiscount = _loyaltyDiscountCalculator.ApplyDiscount(priceAfterDiscount, timeOfHavingAccountInYears); 6 return priceAfterDiscount; 7 }
总结
在本文中,代码被极其简化了,使得所有的技术和模式的解释更容易了。它展示了如何解决常见的编程问题,以及使用良好的实践和设计模式以适当、干净的方式解决这些问题的好处。
在我的工作经历中,我多次在这篇文章中强调了不良的做法。它们显然存在于许多应用场合,而不是在一个类中,如在我的例子中那样,这使得发现它们更加困难,因为它们隐藏在适当的代码之间。写这种代码的人总是争辩说,他们遵循的是简单愚蠢的规则。不幸的是,几乎所有的系统都在成长,变得非常复杂。然后,这个简单的、不可扩展的代码中的每一个修改都是非常重要的,并且带来了巨大的风险。
请记住,您的代码将长期存在于生产环境中,并将在每个业务需求更改上进行修改。因此编写过于简单、不可扩展的代码很快就会产生严重的后果。最后一点是对开发人员有利,尤其是那些在你自己之后维护你的代码。
如果你有一些问题根据文章不要犹豫联系我!
PS:
根据文章敲的源代码:
链接:https://pan.baidu.com/s/1i7BH6Krl_vPnwtBCJjpQ8w 密码:9spz
栏目列表
最新更新
如何使用OS模块中的stat方法
Python os 模块
seek() 方法
python打开文件实例1
Python写入文件
什么是流?
文件操作如何进制逐行读取
Python相对路径
with创建临时运行环境
Python文件操作
.Net Standard(.Net Core)实现获取配置信息
Linux PXE + Kickstart 自动装机
Shell 编程 基础
Shell 编程 条件语句
CentOS8-网卡配置及详解
Linux中LVM逻辑卷管理
1.数码相框-相框框架分析(1)
Ubuntu armhf 版本国内源
Linux中raid磁盘阵列
搭建简易网站
access教程之Access简介
mysql 安装了最新版本8.x版本后的报错:
Mysql空间数据&空间索引(spatial)
如何远程连接SQL Server数据库的图文教程
复制SqlServer数据库的方法
搜索sql语句
sql中返回参数的值
sql中生成查询的模糊匹配字符串
数据定义功能
数据操作功能