软件设计原则

设计原则

软件设计有六大设计原则分别是

  • 单一职责原则

  • 开放-封闭原则

  • 依赖倒置原则

  • 里氏替换原则

  • 合成聚合复用原则

  • 迪米特原则

单一职责原则

对于一个类而言,应该仅有一个引起它变化的原因,若一个类承担的职责过多,等于把这些职责耦合在一起,一个职责的变化可能会消弱或抑制类的完成其他职责的能力,这种耦合会导致脆弱的设计,比如:当变化发生时,设计会遭到意想不到的破坏

使用原则

软件设计真正做的许多内容,就是发现职责并把发现职责相互分离,而判断分离的方法就是如果能够想到多余一个的动机去改变一个类,类具有多于一个职责

开放封闭原则

软件实体(类、模块、函数)应该被设计成可以扩展,但是不能修改。面对需求,对程序改动是通过增加新代码,而不是更改现有代码完成。

表现特征

对于扩展是开放的(Open for Extension

对于更改是封闭的(Closed for Moification

使用原则

  1. 无论模块是多么的封闭,都会存在一些无法对之封闭的变化。尽然不可能完全封闭,设计人员就必须对设计的模块做出封闭和不封闭的选择,必须先预测出最可能发生的变化,构造抽象来隔离变化

  2. 希望在开发工作展开不久就知道可能发生的变化,查明可能发生的变化所等待的时间越长,要创建正确的抽象就越困难

  3. 该原则是面向对象设计的核心所在,遵循这个原则可以带来面向对象技术的可维护性、可扩展性、复用性和灵活性

依赖倒置原则

抽象不应该依赖细节,细节依赖于抽象,针对接口编程,而不是针对实现编程

表现特征

  • 高层模块不应该依赖底层模块,两者都应该依赖抽象

  • 抽象不应该依赖于细节,细节应该依赖抽象

里氏替换原则

子类必须能够替换掉他们的父类型,一个软件实体如果适用的是一个父类的话,那么一定适用与其子类,且它察觉不出父类对象鱼子类对象的区别

合成聚合复用原则

聚合

表示一种弱的“拥有”关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分。

合成

一种强的“拥有”关系,体现严格的部分和整体关系,部分和整体的生命周期一致

迪米特原则

LOD法则,或最少知道原则,若两个类不必彼此直接通信,则这两个类就不应当发生直接的相互作用,即若其中一个类需要调用另一个类的某个方法,可通过第三者转发调用。该原则本质是强调类之间的松耦合

前提条件

在类的结构设计上,每个类都应该尽量减低成员的访问权限

使用原则

类之间的耦合越弱,越有利于复用,一个处于弱耦合的类被修改,不会对有关系的类造成波及


你可能感兴趣的:(软件设计原则)