六大设计原则SOLID

在软件开发中,前人总结了六大设计原则如下:

  1. Single Responsibility Principle:不能有多个导致类变更的原因。一个类只负责一个职责。这个原则不仅仅适用于类,对于接口和方法也适用,而且接口和方法的单一职责更容易实现。——单一职责原则
  2. Liskov Substitution Principle:就是只要父类出现的地方子类就可以出现,且替换成子类也不会出现任何错误或者异常;但是反过来,有子类出现的地方,父类不一定可以适用。也就是说,子类可以扩展父类的功能,但不能改变父类原有的功能。①子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法。②子类可以有自己的个性,所以子类出现的地方父类就不一定适用。③实现父类的方法时,形参的类型可以被放大。④实现父类的方法时,返回值的类型可以缩小。——里氏替换原则
  3. Dependence Inversion Principle:面向接口/抽象编程。①模块间的依赖关系通过接口和抽象类产生,实体类之间不直接发生依赖关系。②接口和抽象类不依赖于实现类。③实现类依赖接口或者抽象类。——依赖倒置原则
  4. Interface Segregation Principle:接口/抽象中的方法尽量少。单一职责原则是按照职责(业务逻辑)进行划分接口的,而接口隔离原则则是按照实现类对方法的使用来划分的。可以说,接口隔离原则更细一些。①接口尽量小。根据具体业务把一个接口按照接口隔离原则细化成更多的接口。但是在此基础之上必须不能违背单一职责原则。②接口要高内聚。就是说,在接口内部实现的方法,不管怎么改,都不会影响到接口外的其他接口或是实现类,只能影响它自己。③定制服务。定制服务就是单独为一个个体提供服务,即只提供访问者需要的方法。④接口设计是有限度的。接口设计越小越好,但是结构同时会变得复杂,维护也变得难了。因此就要把握住这个度。——接口隔离原则
  5. Law of Demeter:也叫最少知道原则。一个对象应该对其他对象有最少的了解。低耦合、高内聚。——迪米特法则
  6. Open Closed Principle:对扩展开放,对修改关闭。也就是应该通过扩展来实现变化,而不是通过修改已有的代码来实现改变。例如,现在业务需求有改变,所有书均打七折。有三个方法可以解决这个问题:第一种方法:修改接口。增加一个方法getOffPrice专门进行打折处理。第二种方法:修改实现类,在实现类里修改getPrice方法。第三种方法:重新扩展一个类继承NovelBook,重新复写getPrice方法。根据对扩展开放对修改关闭原则我们应该选择第三种解决方法。——开闭原则

这六大设计原则是以后学习设计模式的基础,它们的共同目的就是 SOLID ——建立稳定、灵活、健壮的设计。

发布了55 篇原创文章 · 获赞 61 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/Agg_bin/article/details/92981605