![](https://img-blog.csdnimg.cn/20190918135101160.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
设计模式
文章平均质量分 72
主要参考 “C语言中文网” 与 “优秀博客” ,用C++语言总结整理设计模式相关知识。
孟小胖_H
本人博客大部分都是在复习中整理的,主要用于记录笔记,其中也记录了一些个人观点和思考,欢迎指点,一起共同学习进步。
展开
-
设计模式——策略模式
文章目录一、基本知识1.定义2.要点二、结构图三、实例说明1.普通代码2.策略模式代码一、基本知识1.定义定义一系列算法,把它们一个个封装起来,并且使它们可互相替换。该模式使得算法可独立于使用它的客户程序而变化。2.要点①策略模式提供了一系列可重用的算法,从而可以使得类型在运⾏时方便地根据需要在各个算法之间进行切换。②策略模式消除了条件判断语句;也就是在解耦合。二、结构图三、实例说明实例:某商场节假日有固定促销活动,为了加大促销力度,现提升国庆节促销活动规格。1.普通代码enum.原创 2021-12-23 00:37:58 · 396 阅读 · 0 评论 -
设计模式——观察者模式
文章目录一、基本知识1.定义2.要点二、结构图三、实例演示1.普通代码2.观察者模式代码一、基本知识1.定义定义对象间的一种一对多(变化)的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动更新。个人感觉这个跟发布订阅模式有点像。2.要点①观察者模式使得我们可以独立地改变目标与观察者,从而使二者之间的关系松耦合。②观察者自己决定是否订阅通知,目标对象并不关注谁订阅了。③观察者不要依赖通知顺序,目标对象也不知道通知顺序。④常用在基于事件的ui框架中,也是 MVC .原创 2021-12-22 23:09:13 · 524 阅读 · 0 评论 -
设计模式——模板方法
文章目录一、基本知识1.定义2.要点二、结构图三、实例说明一、基本知识1.定义定义一个操作中的算法的骨架 ,而将一些步骤延迟到子类中。 Template Method使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。2.要点①最常用的设计模式,子类可以复写父类子流程,使父类的骨架流程丰富。②反向控制流程的典型应用。③父类 protected 保护子类需要复写的子流程,这样子类的子流程只能父类来调用。二、结构图三、实例说明实例:某个品牌动物园,有一套固定的表演流程,但.原创 2021-12-22 18:31:10 · 459 阅读 · 0 评论 -
设计模式——装饰器模式
文章目录一、基本知识1.定义2.背景示例3.要点二、结构图三、实例说明1.普通代码2.装饰器模式代码一、基本知识在我第一次接触装饰器模式的时候,将它和责任链模式分不开,但是事实上它们是有区别的。1.定义动态地给一个对象增加一些额外的职责。就增加功能而言,装饰器模式比生产子类更为灵活。2.背景示例普通员工有销售奖金,累计奖金,部门经理除此之外还有团队奖金;后面可能会添加环比增长奖金,同时可能针对不同的职位产生不同的奖金组合。3.要点①通过采用组合而非继承的手法, 装饰器模式实现了在运行时.原创 2021-12-22 02:07:11 · 480 阅读 · 0 评论 -
设计模式——责任链模式
文章目录一、基本概念1.定义4.类似背景举例3.要点二、结构图三、实例说明1.普通代码2.责任链代码一、基本概念1.定义使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递请求,直到有一个对象处理它为止。4.类似背景举例请求流程,1 天内需要主程序批准,3 天内需要项目经理批准,3 天以上需要老板批准;3.要点解耦请求方和处理方,请求方不知道请求是如何被处理,处理方的组成是由相互独立的子处理构成,子处理流程通过链表的方式连接,子处理.原创 2021-12-22 01:00:57 · 373 阅读 · 0 评论 -
设计模式——单例模式(懒汉模式,饿汉模式)
声明: 本博客参考C语言中文网和优秀博客总结得出:(1)C语言中文网链接(2)优秀博客链接单例模式的定义: 指一个类只有一个实例,且该类能自行创建这个实例的一种模式。例如,Windows 中只能打开一个任务管理器,这样可以避免因打开多个任务管理器窗口而造成内存资源的浪费,或出现各个窗口显示内容的不一致等错误。在计算机系统中,还有 Windows 的回收站、操作系统中的文件系统、多线程中的线程池、打印机的后台处理服务、应用程序中的对话框、系统中的缓存等常常被设计成单例。单例模式在现实生活中的应用也非原创 2021-10-30 00:40:29 · 679 阅读 · 0 评论 -
设计模式——工厂模式(简单工厂模式、工厂方法模式、抽象工厂模式)
声明: 本博客名词定义等内容和图多是参考C语言中文网。主要记录学习以下内容:一、简单工厂模式二、工厂方法模式三、抽象工厂模式工厂模式的定义:定义一个创建产品对象的工厂接口,将产品对象的实际创建工作放到具体子工厂类当中。这满足创建型模式中所要求的“创建与使用相分离”的特点。按实际业务场景划分,工厂模式有 3 种不同的实现方式,分别是简单工厂模式、工厂方法模式和抽象工厂模式。一、简单工厂模式1.与简单工厂模式有关的基本概念我们把被创建的对象称为“产品”,把创建产品的对象称为“工厂”。如果要创建原创 2021-10-29 01:15:37 · 1470 阅读 · 0 评论 -
什么是设计模式
1.什么是设计模式设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、提高代码的可靠性。设计模式一般有如下几个基本要素:模式名称、问题、目的、解决方案、效果、实例代码和相关设计模式,其中的关键元素包括以下四个方面:模式名称 ,问题 ,解决方案 ,效果 。2.设计模式的分类根据目的(模式是用来做什么的)可分为创建型,结构型和行为型三类:创建型模式:主要用于创建对象。结构型模式:主要用原创 2021-09-23 08:43:52 · 3641 阅读 · 0 评论 -
设计模式(面向对象)设计的七大原则
声明:本人设计模式模块是集合网上资料和老师课件总结的知识点,如本博客有侵权,本人即刻删。设计模式(面向对象设计)原则,分别是:1.开放封闭原则:对扩展开放,对修改关闭2.单一职责原则:一个类只做一件事情3.依赖倒转原则:采用接口编程4.迪米特法则(最小知识原则):高内聚 、低耦合5.接口隔离原则:细节接口6.合成/聚合复用原则:避免使用继承7.里氏代换原则:子类不能去修改父类的功能1、开放封闭原则概念:一个软件实体如类、模板、和函数应该对扩展开放、对修改关闭。模块应该在尽量不修改源代码的原创 2021-09-23 08:32:13 · 388 阅读 · 0 评论