设计模式概述

设计模式是一套被反复使用、多数人知晓、经过分类,用来解决某类问题的代码设计经验总结。

使用设计模式的目的是提高代码的复用率,降低开发成本和周期;提高代码的可维护性,可扩展性和可靠性,而且更容易让人理解。

1. 设计模式的分类

设计模式分为三大类共23种:

创建型模式(5种):单例模式原型模式工厂方法模式抽象工厂模式建造者模式

结构型模式(7种):适配器模式装饰器模式代理模式外观模式桥接模式组合模式享元模式

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

2. 设计模式的设计原则

(1)开闭原则

对扩展开放,对修改关闭;在程序需要扩展时,不去修改原有代码,而是去扩展原有代码,可以通过接口和抽象类实现。

(2)单一原则

一个类只有一个引起它变化的原因,也就是说每个类应该实现单一的职责

(3)里氏替换原则

子类替换父类后,程序行为是一样的,只有当子类替换掉父类后软件的功能不受影响时,父类才能真正地被复用,而子类也可以在父类的基础上添加新的行为;

通俗来讲就是:子类可以扩展父类的功能,但不能改变父类原有的功能。也就是说:子类继承父类时,除添加新的方法完成新增功能外,尽量不要重写父类的方法。子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法

(4)依赖倒置原则

面向接口编程,依赖于抽象而不依赖于具体,写代码时用到具体类时,不与具体类交互,而与具体类的上层接口交互

(5)接口隔离原则

使用多个专门的功能接口,而不是使用单一的总接口,不要让一个单一接口承担过多的职责,而应该进行接口分离,应该保证每个接口中不存在子类用不到却必须实现的方法。

(6)迪米特法则(最少知道原则)

一个类对自己依赖的类知道的越少越好,也就是说无论被依赖的类多么复杂,都应该讲逻辑封装在方法内部,再提供接口方法,这样当被依赖的类变化时,才能最小地影响该类。

最少知道原则的另一个表达方式是:只与直接朋友通信,类之间只要有耦合关系,就叫朋友关系。耦合分为依赖、关联、聚合、组合等,我们称出现为成员变量、方法参数、方法返回值中的类为直接朋友。局部变量、临时变量则不是直接朋友。我们要求陌生的类不要作为局部变量出现在类中。

(7)合成复用原则

尽量使用组合/聚合的方式,而不是使用继承;继承复用破坏了类的封装性。因为继承会将父类的实现细节暴露给子类,父类对子类是透明的。子类与父类的耦合度高。父类的实现的任何改变都会导致子类的实现发生变化,这不利于类的扩展与维护。

合成复用原则是通过将已有的对象纳入新对象中,作为新对象的成员对象来实现的,新对象可以调用已有对象的功能,从而达到复用。

参考:

http://c.biancheng.net/design_pattern/

https://www.runoob.com/design-pattern/design-pattern-intro.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值