【面向对象】设计模式概念和分类

零.前提提要

本文章是我考中级软件设计师时的笔记,基本都是一些自己的思路和见解,现记录一下,希望可以帮助到即将考证的同学。

一.面向对象设计模式的概念

二.面向对象的设计模式分类

设计模式确定了所包含的类和实例、他们的角色和写作方式以及职责分配。每一个设计模式都集中于一个特定的面向对象的设计问题或设计要点,描述了什么时候使用它,在另一些设计约束条件下是否还能使用,以及使用的效果和如何取舍(也就是每个设计模式都有特定的用途,什么样的软件适合使用什么模式就是软件设计师需要考虑的,也是一个考点)。按照设计模式的目的可以分成三大类:

三.创造型模型

工厂方法

简单工厂:我的手机全部自研,从CPU、电池、屏幕到软件、平台全都由一个工厂产出

工厂方法:我只负责生产手机里面的芯片,其他我不管

概念工厂:我不仅生产手机,我还生产汽车、羽毛球拍、衣服

抽象工厂

抽象工厂:产品经理设计了三款产品概念图,由老板定版选择一个进行生产,另外两张就停留在概念中,并未实现

生成器

生成器:可以理解为一千个人中有一千个哈姆雷特,哈姆雷特只有一个,但是每个人对于哈姆雷特的描述不同,就形成了一个新的哈姆雷特,但是不管怎么形容,他们都是在讨论同一个哈姆雷特,只是表达方式不同

原型

原型:老板和你说":你给我去找个明星过来宣传下新产品,要找个和XXX(某知名明星)差不多的"

单例

四.结构型模型

代理模式

装饰器模式

适配器模式

桥接模式

组合模式

享元模式

外观模式

五.行为型模型

观察者模式

观察者模式:可以理解为App的强制更新

责任链模式

命令模式

解释器模式

解释器模式:在高级系统架构里面有个架构风格,里面有个虚拟机风格,解释器就属于虚拟机风格的一个分支,可以理解为JAVA、python这种跨平台的语言之所以可以跨平台,因为底下有一层虚拟机帮助脱离具体的物理编译环境,而解释器就是负责干解释给底下物理环境听,这段JAVA、python代码应该怎么理解的

迭代器

中介者

中介者模式:可以理解为房地产中介需要做的是协调卖家和买家之间的业务,当个中间人帮他们处理事情,而卖家和买家直接没有直接的联系,注意,中介者和上面说过的代理模式不是同一个视角的东西,代理模式是我作为一个买家/卖家,我要找一个中介帮我代理这些事情,而中介者是我作为一个房地产中介,我应该做点什么

备忘录

备忘录:找个地方记录一下这个对象的状态,等以后忘记这个对象是什么状态了就可以查查备忘录

状态

策略

访问者

模板方法

相关推荐
蜡笔小新..38 分钟前
【设计模式】软件设计原则——开闭原则&里氏替换&单一职责
java·设计模式·开闭原则·单一职责原则
lucifer3112 小时前
JavaScript 中的装饰器模式(十一)
javascript·设计模式
蜡笔小新..3 小时前
【设计模式】软件设计原则——依赖倒置&合成复用
设计模式·依赖倒置原则·合成复用原则
刷帅耍帅3 小时前
设计模式-代理模式
设计模式·代理模式
神的孩子都在歌唱10 小时前
行为设计模式 -观察者模式- JAVA
java·观察者模式·设计模式
刷帅耍帅15 小时前
设计模式-解释器模式
设计模式·解释器模式
刷帅耍帅15 小时前
设计模式-备忘录模式
设计模式·备忘录模式
anyup_前端梦工厂20 小时前
JS设计模式之状态模式:优雅地管理应用中产生的不同状态
前端·javascript·设计模式