简述设计模式及设计原则

来源:互联网 发布:淘宝版网页版登录 编辑:程序博客网 时间:2024/06/05 17:05

设计模式是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。

优点:

1.   可重用代码

2.      代码易理解、软件易扩展

3.      代码易维护

软件之美:

        软件的美在于它的功能、内部结构、被创造的方式。

       对于用户来说,通过一个直观和简单的界面呈现的正确功能的程序,是美的

       对于设计者来说,软件内部结构被简单直观的方式分割,并减少内部耦合,是美的;

       对于开发者来说,做成一个无缺陷的代码项目,是美的。

软件设计的七宗罪

        僵化(Rigidity):难改变;

        脆弱(Fragility):易崩溃;

         固化(Immobility):难重用;

         黏滞(Viscosity):难做正确的事;

         非必要行复杂性(NeedlessComplexity):过度设计;

         非必要重复(NeedlessRepetition):易出错

         无设计

 

六大设计原则:

SRP(SingleResponsibility Principle)单一职责原则:一个类只封装一种变化。

遵循单一职责原的优点有:

1.可以降低类的复杂度,一个类只负责一项职责,其逻辑肯定要比负责多项职责简单的多;

2.提高类的可读性,提高系统的可维护性;

3.变更引起的风险降低,变更是必然的,如果单一职责原则遵守的好,当修改一个功能时,可以显著降低对其他功能的影响。

 

OCP(Open-Closed Principle)开放-封闭原则:对扩展开放,对修改封闭

谨记:“Open for extension, Closed for modification”

 

LSP(Liskov Substitution principle):子类可以扩展父类的功能,但不能改变父类原有的功能。

定义:若对每个类型S的对象 o1,都存在一个类型为 T 的对象o2,使得在所有针对 T编写的程序 P中,用o1 替换 o2 后,程序 P 的功能不变,那么S 是T的子类型。

 

DIP(DependenceInversion Principle)依赖倒转原则:高层模块不依赖于底层模块,二者都应该依赖于抽象,抽象不应该依赖于细节;细节应该依赖于抽象。

 

ISP(InterfaceSegregation Principle)接口隔离原则:一个类对另一个类的依赖应该建立在最小的接口上。

 

LOD(Law of Demeter)迪米特法则:一个对象应该对其他对象保持最少的了解。

尽量降低类与类之间的耦合

 

0 0
原创粉丝点击