zoukankan      html  css  js  c++  java
  • 软件架构设计的七大原则

    一、开闭原则(是面向对象开发中最基础的原则,它指导建立更加稳定灵活的系统)

      开闭原则是对扩展和修改行为的一个原则,指的是软件中的函数、类、模块应该对扩展开放,对修改关闭。强调的是用抽象构建框架,用实现扩展细节。常用于解决的问题如:更新版本时,尽量在不修改源代码,但增加新功能。

    二、依赖倒置

      依赖倒置是指设计系统代码结构时,高层模块不依赖底层模块,它们都应依赖于其抽象。细节应该依赖抽象。通过依赖倒置,可减少系统之间模块的耦合性,提高系统的稳定性,提高系统的可读性与可维护性,降低修改程序带来的风险。

      ps:以抽象为基准设计的架构要比以细节为基准设计的架构稳定很多。所以在拿到需求时,要面向接口编程,先顶层再细节来设计代码结构。

           依赖有依赖注入(最常用)、构造方法注入(单例不可用)、setter注入(单例多用)。

    三、单一职责原则

      是指一个类只负责一个功能,不要存在多余一个导致类变更的原因。假设一个类负责两个职责,修改一个可能会影响另一个功能发生故障。只负责一个类可降低类的复杂度,提高类的可读性,提高系统的可维护性,降低变更引起的风险。

    四、接口隔离原则

      是指用多个专门的接口,而不是使用单一的总接口,客户端不应该依赖他不需要的接口。这个原则指导我们在设计接口时应注意以下几点:

      1.一个类对一个类的依赖应该建立在最小的基础上

      2.建立单一接口,不应建立臃肿的接口。

      3.细化接口功能,每个接口内方法要尽量少(不是越少越好,要适度)

      接口隔离原则符合我们所说的“高内聚,低耦合”的思想,从而使类具有很好的可维护性、可读性、可扩展性。我们在设计接口时,要多花时间去思考业务模型,包括以后可能要修改的还要去做一些预判。所以,对于抽象,对业务模型的理解是最重要的。

    五、迪米特法则

       是指一个对象应该保持对其他对象最少的了解,也叫最少了解法则,尽量降低类与类之间的耦合。它强调之和朋友交流,不和陌生人说话。如类中的成员变量、函数参数、函数返回值都是朋友,函数内部的对象是陌生人。

    六、里氏替换原则

      里氏替换原则可以理解为一个软件实体如果能适用父类的话,一定也能适用子类。所有能引用父类的地方都能透明的使用子类对象。子类可替换父类对象而使程序逻辑不变。引申为:子类可扩展父类的方法,但不能覆盖父类原有的功能。

      总结为:1.子类可以实现父类的抽象方法,但不能父类的非抽象方法。

          2.子类可增加自己特有的方法。

          3.当子类的方法重载父类的方法时,子类的前置参数(入参)相比父类更宽松。

          4.当子类的方法重载父类的方法时,子类的后置参数(函数返回值)相比父类更严格或相等。

    七、合成复用原则

      指尽量使用对象组合、聚合,而不是继承来实现软件复用的目的。这样可以使类更加灵活、降低类与类之间的耦合度。

      继承叫白箱复用,会将父类的实现细节全部暴露给子类。合成复用叫黑箱复用,对类以外是无法获取到实现细节的。

    总结:

      我们在写代码时,要根据实际情况(人力、时间、成本)综合考虑,不需刻意追求完美,要在适当的场景考虑设计原则,体现的是一种平衡取舍,来帮助我们设计出更优雅的代码结构。

  • 相关阅读:
    Comparison of Performance Testing Tools
    软件测试两年总结
    利用FSO生成QTP测试报告
    Web 2.0 再思考(三)「搭讪」是需要理由的
    脑子里想的是A,嘴巴上说的是B,实际上做的是C,幻想前景远大的是D,可真正赚钱的恰恰却是E
    东莞镇区实力排名榜
    狂籌資計畫
    转载:日剧和韩剧的区别
    Web 2.0 再思考(一)「关系」才是重点
    炒股
  • 原文地址:https://www.cnblogs.com/Lena666/p/11189961.html
Copyright © 2011-2022 走看看