设计模式一览

设计模式概念解读

  • 文字解读 反复利用,分类和无数实战之后的总结。使用设计模式是为了让系统可重用,可拓展,可可解偶,更容易被理解。它能让代码真正的工程化,是项目工程化的基础。
  • 拟物化解读 基于不同的用途设计不同的物件,区分开来分类进行细分使用。

发展与应用

  • 设计模式发展 每种语言都可以解释并拥有设计模式,如果你是js开发者,建议学下js权威指南和js高级程序设计。
  • Js中的设计模式 它的语言特别灵活,最近出现了各种js可以实现的设计模式。

设计原则

设计本身是为了提高代码可利用性,增加可维护性,符合以下的原则:

  • 开闭原则:对拓展开放,对修改关闭,比如高考的试卷临近高考不能修改试卷,只能增加附加题
  • 里氏转换原则:子类继承父类,单独调完全可以执行,比如盗版的光盘,由正版光盘衍生而来,可以和正版光盘一样被播放。
  • 依赖倒转原则:引用一个对象,如果这个对象有底层对象,直接引用底层对象,比如可以直接用小桶打水,就没必要引用大桶向大桶灌水再用大桶。
  • 接口隔离原则:每一个接口都应该有自己的角色,比如usb接口只能实现usb接口的功能不可能实现hdmi接口功能。
  • 合成以及聚合复用的原则:新的对象使用了一些原有对象的属性或者方法,应该使其成为对象的一部分,比如你已经有一些汽车的基本零件,可以再加一些零件构成汽车,不用完全买新车。
  • 迪米特原则(最小知识原则):一个对象应该尽量对其他对象有较少的了解。比如汽车对自行车的了解应该是很少的,如果对自行车的类型以及属性相差很少,就会脱离汽车本身的特性。

设计模式分类

创建型设计模式

  • 简单工厂模式
  • 工厂方法模式
  • 抽象工厂模式
  • 建造者模式
  • 原型模式
  • 单例模式

结构型设计模式

  • 套餐服务-外观模式
  • 水管弯弯-适配器模式
  • 牛郎织女-代理模式
  • 房子装修-装饰者模式
  • 城市间的道路-桥接模式
  • 超值午餐-组合模式
  • 城市公交车-享元模式

行为型设计模式

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

技巧型设计模式

  • 链模式
  • 委托模式
  • 数据访问对象模式
  • 节流模式
  • 简单模板方式
  • 惰性模式
  • 参与者模式
  • 等待者模式

架构型设计

  • 同步模块模式
  • 异步模块模式
  • widget模式
  • mvc模式
  • mvp模式
  • mvvm模式

参考资料

  • 本文档参考《极客学院》部分视频资料以及张容铭《js设计模式》

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java帮帮-微信公众号-技术文章全总结

高级框架-Struts2-day01【悟空教程】

Struts2是一种基于MVC模式的轻量级Web框架,它自问世以来,就受到了广大Web开发者的关注,并广泛应用于各种企业系统的开发中。目前掌握Struts2框架...

11430
来自专栏极客猴

Django学习之旅(一)

大家还在坚持自己新年指定的计划吗?我按部就班地继续自己的计划。我近来准备学习python web方面的知识,主要是从Django框架开始学起。这一系列的文章是我...

9020
来自专栏雪胖纸的玩蛇日常

Vue学习(4)

1.{{}}模板语法、插值、简单运算 2.指令系统 v-if 真正销毁重建 v-show 更改css的display,用于重复切换出现

8320
来自专栏杂烩

分布式服务框架之Dubbo整合Spring项目(三)

        代码粘贴完毕,注意一下dubbo依赖的是spring2.5,需要在pom里处理一下,不然使用别的版本的spring的时候,项目会报错。

15330
来自专栏杂烩

组件化项目搭建(非专业,无聊的一次尝试)三 原

        现在dao已经独立出去了,办公室里的一部分人员分出去,但还有一些干等着呢。得了,继续弄吧,业务这层,包含的还有控制器这一层,所以直接使用spri...

9720
来自专栏极客猴

Django 学习笔记之初识

上篇文章讲述 Django 环境搭建, 在文章最后部分还有 6 篇 Django 简单入门的文章。后来我自己以一个新手的角度来阅读文章,发现前面三篇文章能被够消...

7610
来自专栏极客猴

Android设计模式之MVP

最近利用业余时间来深入学习MVP模式,我把自己对MVP模式的理解分享给大家,希望能给你理解MVP模式提供帮助。

15210
来自专栏Web项目聚集地

从零学习Spring MVC框架「RESTful风格实践」

学习本文章之前,我们需要知道什么是RESTful API,还对此不了解的朋友可以移步历史文章 RESTful 接口实现简明指南 ,简单来说就是就是用URL定位资...

21310
来自专栏一“技”之长

iOS对UIViewController生命周期和属性方法的解析

        作为MVC设计模式中的C,Controller一直扮演着项目开发中最重要的角色,它是视图和数据的桥梁,通过它的管理,将数据有条有理的展示在我们的...

35820
来自专栏Web项目聚集地

「SSM实战」从零开发内容管理系统(一)

本课程将从零开始,手把手带大家完成项目开发,有助于掌握编码思维、经验与技巧,并拥有一个属于自己的线上作品。本课程并非从Java语法开始的,共20节课从零讲解此项...

22820

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励