设计模式概述

什么是设计模式?

设计模式(Design Pattern)是前辈们对代码开发经验的总结,是解决特定问题的一系列套路,它不是语法规定,而是一套用来提高代码可复用性,可维护性,可读性,稳健性以及安全性的解决方案。

1995年,GoF(Gang of Four,四人组,四人帮)合作出版了《设计模式:可复用面向对象软件的基础》一书,共收录了23种设计模式,从此树立了软件设计模式领域的历程碑,人称【GoF设计模式】。


前人种树,后人乘凉,设计模式重点是针对面向对象的
学习设计模式的意义

        设计模式的本质是面向对象设计原则的实际运用,是对类的封装性,继承性和多态性以及类的关联关系和组合关系的充分理解。

正确使用设计模式具有以下优点

  • 可以提高程序员的思维能力,编程能力和设计能力。
  • 使用程序设计更加标准化,代码编制更加工程化,使软件开发效力大大提高,从而缩短软件的开发周期
  • 使用设计的代码可重用性高,可读性强,可靠性高,灵活性好,可维护性强。

设计模式的基本要素

  • 模式名称
  • 问题
  • 解决方案
  • 效果

GoF 23,都有哪些设计模式?

  • GoF 23

                一种思维,一种态度,一种进步

  • 创建型模式:

                单例模式,工厂模式,抽象工厂模式,建造者模式,原型模式。

  • 结构型模式:

                适配器模式,桥接模式,装饰模式,组合模式,外观模式,享元模式,代理模式。

  • 行为型模式:

                模板方法模式,命令模式,迭代器模式,观察者模式,中介者模式,备忘录模式,解释器模式,状态模式,策略模式,责任链模式,访问者模式。

创建型模式:主要用于如何创建一个对象,将对象的创建与使用分离
结构型模式:主要用于如何将类或者对象,按照某种布局组成一些更大的结构
行为型模式:主要描述类或者对象之间如何能相互协作,共同完成单个对象无法完成 的任务

面向对象的七大原则

OOP七大原则

  • 开闭原则:对扩展开放,对修改关闭。
  • 里氏替换原则:继承必须确保超类所拥有的性质在子类中仍然成立。
  • 依赖倒置原则:要面向接口编程,不要面向实现编程。
  • 单一职责原则:控制类的粒度大小,将对象解耦,提高其内聚性。
  • 接口隔离原则:要为各个类建立他们需要的专用接口。
  • 迪米特法则:只与你的直接朋友谈,不跟 “陌生人” 说话。
  • 合成复用原则:尽量先使用组合或者聚合等关联关系来实现,其次才考虑使用继承继承关系来实现

开闭原则:当应用需求发生改变的时候,尽量不修改原有代码,可以在其之上进行扩展
里氏替换原则:某个子类可以扩展父类的功能,尽量不要改变父类原有的功能,因为父类会影响到所有子类
依赖倒置原则:高层的模块不应依赖底层的模块,抽象不依赖细节,细节应该依赖抽象,降低程序之间的耦合性,接口比较稳定,实现存在多变,面向接口可以制定一些规范,公司架构师主要设计一些接口,规范,然后具体的细节代码由底下人来写等等例子
单一职责原则:一个对象不应该承担太多的职责,当客户端需要一些功能时,我们不应该将所有功能全交给一个对象,这样会造成代码的冗余,尽量一个方法实现一个功能,如果一个方法完成的功能太多,就称其为粗粒度
接口隔离原则:针对一些接口依赖的隔离,也是将类之间的耦合性降低,提高内聚性
迪米特法则:例如,A 依赖 B,B 依赖 C。A 想用 C 的功能,不能再让 A 依赖于 C。弊端,会产生很多想 B 这样的中介角色
合成复用原则:组合的关系是 has a 的关系,而继承是 is a,少用继承

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值