设计模式简介以及六大原则

欢迎来到大鹏的IT世界,本文给大家分享的是设计模式简介以及六大原则。保持专注,持续学习,你就比别人强。

一、设计模式简介:

1994年,GOF四人帮在他们出版的《设计模式 - 可复用的面向对象软件元素》一书中首次提出了设计模式的概念。

那大家思考一个问题,什么是设计模式?为什么要有设计模式?

大家都知道,软件开发过程中经常会遇到需求变动,后期维护等问题,所以我们设计的代码要扩展性好,易于维护和升级。设计模式就提供了软件开发过程中所遇到的一般问题的最佳解决方案。说白了就是前辈们把工作中遇到的一些问题和解决方法进行归纳总结,提出了一种答案的模板,我们学习了设计模式后,在开发过程中遇到了类似的问题,就可以直接照着模板去设计我们的代码。

另一方面,设计模式也提供了一种代码设计的标准,也可以理解为行业通用术语,这样大家在讨论沟通的过程中可以处于同一频道上,彼此会有一种你说的话我都理解的默契。大家可以想象一下,一个懂设计模式的人和一个不懂设计模式的人在一起讨论问题,然后懂设计模式的人说用观察者模式解决吧,然后另一个人完全不知所云,还得向他解释半天什么是观察者模式,这就无法沟通。体现在阅读他人代码方面,就是,如果不懂设计模式,你根本读不懂高手们写的代码,所以在阅读那些开源代码的时候,你会经常疑惑,这儿为什么要写这个接口,这个接口貌似有点多余。

所以设计模式是软件开发人员从菜鸟进阶到高级的一个必经之路,很多同学觉得设计模式很高大上,有一种畏惧心理,其实完全没必要,很多事情都是会者不难难者不会,只要静下心来一步一步去学习,多多实践,必然会成为高手。

二、设计模式的三大类型:

1.创建型模式:单例模式、简单工厂模式、工厂方法模式、抽象工厂模式、建造者模式、原型模式。   

这些设计模式提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用 new 运算符直接实例化对象。这使得程序在判断针对某个给定实例需要创建哪些对象时更加灵活。

2.结构型模式:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。

这些设计模式关注类和对象的组合。继承的概念被用来组合接口和定义组合对象获得新功能的方式。

3.行为型模式:策略模式、模板方法模式、观察者模式、迭代器模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

这些设计模式特别关注对象之间的通信。

三、设计模式的六大原则:

1.单一职责原则

单一职责原则是指:就一个类而言,应该仅有一个引起它变化的原因。如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭受意想不到的破坏。软件设计真正要做的许多工作,就是发现职责并把这些职责分离。

2.开闭原则

开闭原则的意思是:对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。简言之,是为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类,去把那些变化的部分抽象出来,这样如果以后需要增加相似的功能,只需要增加新代码就可以实现,而不是更改现有的代码。

3.里氏代换原则

里氏代换原则是面向对象设计的基本原则之一。 里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。里氏代换原则是继承复用的基石,只有当派生类可以替换掉基类,且软件单位的功能不受到影响时,基类才能真正被复用,而派生类也能够在基类的基础上增加新的行为。里氏代换原则是对开闭原则的补充。实现开闭原则的关键步骤就是抽象化,而基类与子类的继承关系就是抽象化的具体实现,所以里氏代换原则是对实现抽象化的具体步骤的规范。

4.依赖倒转原则

这个原则是开闭原则的基础,具体内容:针对接口编程,依赖于抽象而不依赖于具体。

5.接口隔离原则

这个原则的意思是:使用多个隔离的接口,比使用单个接口要好。它还有另外一个意思是:降低类之间的耦合度。由此可见,其实设计模式就是从大型软件架构出发、便于升级和维护的软件设计思想,它强调降低依赖,降低耦合。

6.迪米特法则,又称最少知道原则

最少知道原则是指:一个实体应当尽量少地与其他实体之间发生相互作用,使得系统功能模块相对独立。它的根本思想是强调类之间的松耦合。

7.其实还有一个原则:合成复用原则

合成复用原则是指:尽量使用合成/聚合的方式,而不是使用继承。


欢迎大家的观看,希望能帮到大家。接下来我会把设计模式好好整理一下。

下集不预告,直接点击继续欣赏:设计模式之单例模式


猜你喜欢

转载自blog.csdn.net/u012604745/article/details/80212513
今日推荐