
本文共 1039 字,大约阅读时间需要 3 分钟。
设计模式是一套被反复使用、多数人知晓、经过分类,用来解决某类问题的代码设计经验总结。
使用设计模式的目的是提高代码的复用率,降低开发成本和周期;提高代码的可维护性,可扩展性和可靠性,而且更容易让人理解。
1. 设计模式的分类
设计模式分为三大类共23种:
创建型模式(5种):、、、、
结构型模式(7种):、、、、、、
行为型模式(11种):、、、、、、、、、、
2. 设计模式的设计原则
(1)开闭原则
对扩展开放,对修改关闭;在程序需要扩展时,不去修改原有代码,而是去扩展原有代码,可以通过接口和抽象类实现。
(2)单一原则
一个类只有一个引起它变化的原因,也就是说每个类应该实现单一的职责
(3)里氏替换原则
子类替换父类后,程序行为是一样的,只有当子类替换掉父类后软件的功能不受影响时,父类才能真正地被复用,而子类也可以在父类的基础上添加新的行为;
通俗来讲就是:子类可以扩展父类的功能,但不能改变父类原有的功能。也就是说:子类继承父类时,除添加新的方法完成新增功能外,尽量不要重写父类的方法。子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法
(4)依赖倒置原则
面向接口编程,依赖于抽象而不依赖于具体,写代码时用到具体类时,不与具体类交互,而与具体类的上层接口交互
(5)接口隔离原则
使用多个专门的功能接口,而不是使用单一的总接口,不要让一个单一接口承担过多的职责,而应该进行接口分离,应该保证每个接口中不存在子类用不到却必须实现的方法。
(6)迪米特法则(最少知道原则)
一个类对自己依赖的类知道的越少越好,也就是说无论被依赖的类多么复杂,都应该讲逻辑封装在方法内部,再提供接口方法,这样当被依赖的类变化时,才能最小地影响该类。
最少知道原则的另一个表达方式是:只与直接朋友通信,类之间只要有耦合关系,就叫朋友关系。耦合分为依赖、关联、聚合、组合等,我们称出现为成员变量、方法参数、方法返回值中的类为直接朋友。局部变量、临时变量则不是直接朋友。我们要求陌生的类不要作为局部变量出现在类中。
(7)合成复用原则
尽量使用组合/聚合的方式,而不是使用继承;继承复用破坏了类的封装性。因为继承会将父类的实现细节暴露给子类,父类对子类是透明的。子类与父类的耦合度高。父类的实现的任何改变都会导致子类的实现发生变化,这不利于类的扩展与维护。
合成复用原则是通过将已有的对象纳入新对象中,作为新对象的成员对象来实现的,新对象可以调用已有对象的功能,从而达到复用。
参考:
发表评论
最新留言
关于作者
