初窥SOLID设计原则


初窥SOLID设计原则

为什么要使用设计原则

在软件开发中,为了提高软件系统的可维护性和可复用性,增加软件的可拓展性和灵活性,我们要尽量根据设计原则来开发程序,从而提高软件开发效率,节约软件开发成本和维护成本。

单一职责原则(SRP)

简单的来说就是一个类/接口/方法只负责一项职责

开闭原则(OCP)

软件实体应当对扩展开放,对修改关闭。简单来说就是尽量实现在新增功能的时候不修改已经写好的代码,实现一个热插拔的效果,类似于USB一样

个人理解:在根据业务设计模型对象时,可以不设计的那么完美,只按照需求设计对应的属性或方法即可,如新增需求的话,只需要继承原有对象,并实现需求,从而实现一个更细致化的模型

里式替换原则(LSP)

任何基类可以出现的地方,子类一定可以出现,通俗来讲:子类可以拓展父类的功能,但不能改变父类原有的功能,也就是说子类继承父类时,除添加新的方法完成新增功能时,尽量不要重写父类的方法

接口隔离原则(ISP)

客户端不应该被迫依赖于它不使用的方法,一个类对另一个类的依赖应该建立在最小的接口上,也就是说要为各个类建立他们需要的专用接口,而不要试图去建立一个很庞大的接口供所有依赖它的类去调用

单一职责原则主要是约束类,它针对的是程序中的实现和细节。接口隔离原则主要约束接口,主要针对抽象和程序整体框架的构建

依赖倒置原则(DIP)

高层模块不应该依赖低层模块,两者都应该依赖其抽象,抽象不应该依赖细节,细节应该依赖抽象。总而言之就是要面向接口编程,不要面向实现编程

迪米特法则

如果两个软件实体无须直接通信,那么就不应当发生直接的相互调用,可以通过第三方转发该调用。目的是为了降低类之间的耦合度,提高模块的相对独立性。

合成复用原则

在代码复用时,要尽量先试用组合或者聚合等关联关系来实现,其次才考虑使用继承关系来实现

通常类的复用分为继承复用和合成复用两种

继承复用虽然有简单和易实现的优点,但它也存在以下缺点:

  1. 继承复用破坏了类的封装性,因为继承会将父类的实现细节暴露给子类,父类对子类是透明的,所以这种复用又称为白箱复用
  2. 子类与父类的耦合度高,父类的实现有任何改变都会导致子类的实现发生变化,这不利于类的扩展与维护
  3. 它限制了复用的灵活性,从父类继承过来的实现是静态的,在编译时就已经定义,所以在运行时不可能发生变化

采用组合或聚合复用时,可以将已有对象纳入新对象中,使之成为新对象的一部分,新对象可以调用已有对象的功能,它有以下优点

  1. 它维持了类的封装性,因为成分对象的内部细节是新对象看不见的,所以这种复用又称为黑箱复用
  2. 对象间的耦合度低,可以在类的成员位置声明抽象
  3. 复用的灵活度高,这种复用可以在运动时动态进行,新对象可以动态的引入与成分对象相同的对象

文章作者: 我若为侠
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 我若为侠 !
 上一篇
23种设计模式-单例模式 23种设计模式-单例模式
23种设计模式-单例模式概述单例模式是最简单的设计模式之一,这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式 这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一对象的方
下一篇 
23种设计模式的分类 23种设计模式的分类
23种设计模式的分类概念设计模式是一套被反复使用、多数人知晓的、经过分类编目、代码设计经验的总结,也是解决某类问题的最佳实践。 它描述了在软件设计过程中的一些不断重复发生的问题,以及该问题的解决方案。也就是说,他说解决特定问题的一系列套路,
  目录