设计模式概念解读
- 文字解读 反复利用,分类和无数实战之后的总结。使用设计模式是为了让系统可重用,可拓展,可可解偶,更容易被理解。它能让代码真正的工程化,是项目工程化的基础。
- 拟物化解读 基于不同的用途设计不同的物件,区分开来分类进行细分使用。
发展与应用
- 设计模式发展 每种语言都可以解释并拥有设计模式,如果你是js开发者,建议学下js权威指南和js高级程序设计。
- Js中的设计模式 它的语言特别灵活,最近出现了各种js可以实现的设计模式。
设计原则
设计本身是为了提高代码可利用性,增加可维护性,符合以下的原则:
- 开闭原则:对拓展开放,对修改关闭,比如高考的试卷临近高考不能修改试卷,只能增加附加题
- 里氏转换原则:子类继承父类,单独调完全可以执行,比如盗版的光盘,由正版光盘衍生而来,可以和正版光盘一样被播放。
- 依赖倒转原则:引用一个对象,如果这个对象有底层对象,直接引用底层对象,比如可以直接用小桶打水,就没必要引用大桶向大桶灌水再用大桶。
- 接口隔离原则:每一个接口都应该有自己的角色,比如usb接口只能实现usb接口的功能不可能实现hdmi接口功能。
- 合成以及聚合复用的原则:新的对象使用了一些原有对象的属性或者方法,应该使其成为对象的一部分,比如你已经有一些汽车的基本零件,可以再加一些零件构成汽车,不用完全买新车。
- 迪米特原则(最小知识原则):一个对象应该尽量对其他对象有较少的了解。比如汽车对自行车的了解应该是很少的,如果对自行车的类型以及属性相差很少,就会脱离汽车本身的特性。
设计模式分类
创建型设计模式
- 简单工厂模式
- 工厂方法模式
- 抽象工厂模式
- 建造者模式
- 原型模式
- 单例模式
结构型设计模式
- 套餐服务-外观模式
- 水管弯弯-适配器模式
- 牛郎织女-代理模式
- 房子装修-装饰者模式
- 城市间的道路-桥接模式
- 超值午餐-组合模式
- 城市公交车-享元模式
行为型设计模式
- 模板方法模式
- 观察者模式
- 状态模式
- 策略模式
- 职责链模式
- 命令模式
- 访问者模式
- 中介者模式
- 备忘录模式
- 迭代器模式
- 解释器模式
技巧型设计模式
- 链模式
- 委托模式
- 数据访问对象模式
- 节流模式
- 简单模板方式
- 惰性模式
- 参与者模式
- 等待者模式
架构型设计
- 同步模块模式
- 异步模块模式
- widget模式
- mvc模式
- mvp模式
- mvvm模式
参考资料
- 本文档参考《极客学院》部分视频资料以及张容铭《js设计模式》