软件架构设计的七大原则

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

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

2、依赖倒置框架

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

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

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

3、单一职责原则继承

  是指一个类只负责一个功能,不要存在多余一个致使类变动的缘由。假设一个类负责两个职责,修改一个可能会影响另外一个功能发生故障。只负责一个类可下降类的复杂度,提升类的可读性,提升系统的可维护性,下降变动引发的风险。接口

4、接口隔离原则开发

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

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

  2.创建单一接口,不该创建臃肿的接口。

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

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

5、迪米特法则

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

6、里氏替换原则

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

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

      2.子类可增长本身特有的方法。

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

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

7、合成复用原则

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

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

总结:

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

相关文章
相关标签/搜索