欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

设计模式-基本原则

程序员文章站 2022-05-29 12:53:53
学习一样东西,我们首先要知道为什么要学这个,或者说这个东西能起到什么作用。这样才能更加有目的、有效率地进行学习。 然后再问为什么这个东西能实现这样的效果,从而了解其内部的机制。 最后,再弄清楚怎么使用,这样才算真正学会了。 换而言之,把要学习的技能比喻成实现某一功能的函数,那么了解函数的功能、函数的 ......

学习一样东西,我们首先要知道为什么要学这个,或者说这个东西能起到什么作用。这样才能更加有目的、有效率地进行学习。

然后再问为什么这个东西能实现这样的效果,从而了解其内部的机制。

最后,再弄清楚怎么使用,这样才算真正学会了。

换而言之,把要学习的技能比喻成实现某一功能的函数,那么了解函数的功能、函数的具体实现以及函数的调用方法,就算懂得了这个函数。

一、为什么要学设计模式?

学习设计模式是为了提高软件代码的健壮性、可修改性和扩展性、提高开发的效率、方便程序员设计时的互相交流。个人觉得,首要的是扩展性。

事实上,如果设计一款软件仅仅是为了实现功能这一目的,我们根本不需要什么设计模式,只需要把代码写上去,可能代码的结构一团糟,但是能运行就可以了。那么请思考一下这样设计出来的软件和按照正规设计模式设计出来的软件在设计和维护上的优缺点对比,就不难理解上面那句话了。

二、设计模式通过怎样的内部实现提供了这些优点?

设计模式的原则(设计模式应当遵循的基本规则,这样才能保证设计模式能达到预期效果)

总原则:开闭原则。对扩展开发,对修改关闭。

单一职责原则——要方便扩展,就要尽可能地使每个类的功能单一化,个人理解。

里氏替换原则——子类能够替换父类,才能保证扩展性。

依赖倒转原则——写代码要用到具体类时,不与具体类进行交互,而是与它的上层接口进行交互,这样之后要进行扩展时,就不需要更改这部分交互的代码。

接口隔离原则——每个接口不应存在子类用不到却又必须实现的方法,(否则该接口视为过于复杂,相当于有额外的功能),否则该接口应当拆分。

迪米特法则(最少知道法则)——一个类对自己依赖的类知道的越少越好,否则当被依赖的那个类进行扩展时,耦合度太高,会影响到当前类。