美文网首页
2018-05-15 代码重构时再看设计原则

2018-05-15 代码重构时再看设计原则

作者: 幸福晓杰2016 | 来源:发表于2018-05-15 10:45 被阅读39次

重构是个技术活,需要很资深的人士去整体架构把控技术方案和产品质量,才能使重构做的更加有效并且不会引入新的问题,但是无论我们最终采取什么手段去重构,最终我们都需要尽量符合 Solid 设计相关原则:

•   类的单一职责:体现了类只应该做一件事,良好的软件设计中系统是由一组大量的短小的类组成,以及需要他们之间功能协作完成,而不是几个上帝类。如果类的职责超过一个,这些职责之间就会产生耦合。改变一个职责,可能会影响和妨碍类为其他人服务的功能。这种类型的耦合将会导致脆弱的设计,在修改的时候可能会引入不少未知的问题。

•   开闭原则:其定义是说一个软件实体如类,模块和函数应该对扩展开放,而对修改关闭,具体来说就是你应该通过扩展来实现变化,而不是通过修改原有的代码来实现变化,该原则是面相对象设计最基本的原则。其指导思想就是(1)抽象出相对稳定的接口,这部分应该不动或者很少改动;(2)封装变化;不过在软件开发过程中,要一开始就完全按照开闭原则来可能比较困难,更多的情况是在不断的迭代重构过程中去改进,在可预见的变化范围内去做设计。

•   里氏替换原则:子类可以扩展父类的功能,但不能改变父类原有的功能。简单来说,所有使用基类代码的地方,如果换成子类对象的时候还能够正常运行,则满足这个原则,否则就是继承关系有问题,应该废除两者的继承关系,这个原则可以用来判断我们的对象继承关系是否合理。通常在设计的时候,我们都会优先采用组合而不是继承,因为继承虽然减少了代码,提高了代码的重用性,但是父类跟子类会有很强的耦合性,破坏了封装。

•   接口隔离原则:不能强迫用户去依赖那些他们不使用的接口。简单来说就是客户端需要什么接口,就提供给它什么样的接口,其它多余的接口就不要提供,不要让接口变得臃肿,否则当对象一个没有使用的方法被改变了,这个对象也将会受到影响。接口的设计应该遵循最小接口原则,其实这也是高内聚的一种表现,换句话说,使用多个功能单一、高内聚的接口总比使用一个庞大的接口要好。

•   依赖倒置(DIP):高层模块不应该依赖低层模块,两者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。其实这就是我们经常说的“针对接口编程”,这里的接口就是抽象,我们应该依赖接口,而不是依赖具体的实现来编程。DIP 描述组件之间高层组件不应该依赖于底层组件。依赖倒置是指实现和接口倒置,采用自顶向下的方式关注所需的底层组件接口,而不是其实现。DI 模式很好例子的就是应用 IOC(控制反转)框架,构造方式分为分构造注入,函数注入,属性注入 。
        当我们在做重构优化的时候应该充分考虑上面这几个原则,一开始可能设计并不完美,不过可以在重构的过程中不断完善。但其实很多人都跳过了设计这个环节,拿到一个模块直接动手编写代码,更不用说去思考设计了,项目中也有很多这样的例子。当然对于简单的模块或许不用什么设计,不过假如模块相对复杂的话,能够在动手写代码之前好好设计思考一下,养成这个习惯,肯定会对编写出可读性、稳定性、健壮性、灵活性、可服用性、可扩展性较高的代码有帮助

相关文章

  • 2018-05-15 代码重构时再看设计原则

    重构是个技术活,需要很资深的人士去整体架构把控技术方案和产品质量,才能使重构做的更加有效并且不会引入新的问题,但是...

  • 代码重构流程

    目录 重构功能名称 需求整理 需求评审 设计方案 设计评审 代码重构 重构验收 汇总意见 重构功能名称 待重构功能...

  • 设计模式之策略模式代码实战

    课程目标 了解代码重构 了解策略模式的定义、应用场景 了解JDK中策略模式的应用 了解设计原则(开闭原则、单一职责...

  • 《重构-改善既有代码的设计》笔记-重构原则

    重构定义 名词:对软件内部结构的一种调整,目的在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本动词:...

  • 「重构」读书笔记

    重构不是目的,而是工具。 为何重构 改进软件设计 维持或改进代码的设计意图,避免代码结构流失 消除重复代码,方便未...

  • ruhe

    如何重构代码? 代码重构的基本原则:项目中不能出现重复代码? 什么叫重复代码?重复代码分n种; 1、文本类重复,即...

  • 代码重构

    为什么要重构 重构改进软件的设计 设计欠佳的程序往往需要更多的代码,重构一个重要方向就是消除重复代码 软件变坏的途...

  • android提升大法

    1、架构设计 1.1 设计模式 1.2 重构《重构改善既有的代码设计》 1.3 架构模式MVP MVC MVVM ...

  • 《重构-改善既有代码的设计》PDF高清完整版-免费下载

    《重构-改善既有代码的设计》PDF高清完整版-免费下载 《重构-改善既有代码的设计》PDF高清完整版-免费下载 下...

  • 重构改善既有代码的设计有感-重构原则

    第一章已经看了好几遍,书里记录了一些临散的笔记,就是不知道从何落笔记录,就想着从第二章开始发了。书里的作者本人风格...

网友评论

      本文标题:2018-05-15 代码重构时再看设计原则

      本文链接:https://www.haomeiwen.com/subject/qudedftx.html