
设计模式
设计模式学习笔记
Thalvin
嵌入式软件工程师
展开
-
设计模式课程设计
又到了一年两度的课程设计时间,又要开始写无聊的课程设计,学校是开了课程设计这门课的,但是疫情期间老师选的网课视频的讲解风格不是很好,所以我就自己在bilibili上看视频学习的,具体学习笔记可以看我的《设计模式》专栏原创 2020-06-07 22:03:11 · 9107 阅读 · 8 评论 -
行为型模式---- 观察者模式(C++)
文章目录行为型模式---- 观察者模式模式的结构和实现模式的结构观察者模式UML类图观察者模式实例行为型模式---- 观察者模式观察者模式中多个对象间存在一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新模式的结构和实现模式的结构抽象主题:提供了一个用于保存观察者对象的聚集类和增加、删除观察者对象的方法,以及通知所有观察者的抽象方法具体主题:实现抽象目标中的通知方法,当具体主题的内部状态发生变化时,通知所有注册过的观察者对象抽象观察者:抽象类或接口,它包含原创 2020-05-17 17:39:24 · 407 阅读 · 0 评论 -
行为型模式----命令模式(C++)
文章目录行为型模式----命令模式结构与实现模式的结构命令模式的UML类图命令模式特点优点缺点命令模式实例行为型模式----命令模式将一个请求封装为一个对象,使发出请求的责任与执行请求的责任分割开,也就是说,将命令的请求者和命令执行者两者之间实现“松耦合”,方便对行为进行“记录、撤销”等操作结构与实现模式的结构抽象命令:声明执行命令的接口,拥有执行命令的抽象方法具体命令:是抽象命令的具体实现类,它拥有接受者对象,并通过调用接收者的功能来完成命令要执行的操作调用者:是请求的发送者,它通常拥有多原创 2020-05-17 14:52:25 · 555 阅读 · 3 评论 -
行为型模式----策略模式(C++)
文章目录行为型模式----策略模式结构和实现模式的结构策略模式的UML类图模式的特点优点缺点策略模式实例行为型模式----策略模式策略模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户结构和实现模式的结构抽象策略类:定义了一个公共接口,各种不同的算法以不同的方式实现这个接口,环境角色使用这个接口调用不同的算法具体策略类:实现了抽象策略定义的接口,提供具体的算法实现环境类:持有一个策略类的引用,最终给客户端调用策略模式的UML类图模式的特原创 2020-05-17 09:58:40 · 395 阅读 · 0 评论 -
行为型模式----模板方法模式(C++)
文章目录行为型模式----模板方法模式结构和实现模式的结构模板方法模式UML类图模式特点优点缺点模板方法实例行为型模式----模板方法模式定义一个操作的算法骨架,将具体操作延伸到子类中,使得子类不改变算法结构的情况下重定义算法的某些特定步骤例如:去饭店吃饭的步骤一般有三个流程:点菜、吃饭、付款。其中点菜和付款的操作的具体步骤不明朗,需要在具体的子类中对其实现结构和实现模式的结构抽象类:负责给出算法的轮廓和骨架模板方法:定义了算法的骨架,按某种顺序调用包含的基本方法基本方法:是整个算法中的原创 2020-05-15 09:42:39 · 444 阅读 · 0 评论 -
结构型模式----适配器模式(C++)
文章目录结构型模式----适配器模式模式结构和特点模式结构模式优点模式缺点适配器模式的UML类图适配器模式实例结构型模式----适配器模式将一个类的接口转换为客户希望的另一个接口,使得原本由于接口不兼容而不能一起工作的类能够一起工作模式结构和特点模式结构适配器模式的主要角色如下目标接口:当前系统业务所期待的接口,它可以是抽象类或接口适配者类:它是被访问和适配的现存组件库中的组件接口适配器类,它是一个转换器,通过继承或引用适配器对象,把适配器接口切换成目标接口,让客户按目标接口的格式访问适配原创 2020-05-14 09:38:14 · 575 阅读 · 0 评论 -
结构型模式----外观模式(C++)
文章目录设计模式----外观模式模式结构与实现模式的结构外观模式UML类图优点缺点外观模式的应用场景外观模式实例设计模式----外观模式外观模式为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问模式结构与实现模式的结构外观角色:为多个子系统对外提供了一个共同的接口子系统角色:实现系统的部分功能,客户可以通过外观角色访问其资源客户角色:通过一个外观角色访问子系统的功能外观模式UML类图优点降低了子系统和客户端的耦合度对用户屏蔽了子系统组件缺点不能很好的限制原创 2020-05-13 21:28:23 · 430 阅读 · 0 评论 -
结构型模式----装饰模式(C++)
文章目录设计模式----装饰模式实现和结构模式结构装饰模式的UML类图模式使用场景模式特点优点缺点装饰模式实例设计模式----装饰模式装饰模式:在不改变现有对象结构的情况下,动态的给对象增加一些额外功能实现和结构模式结构抽象构件:给出一个抽象接口,以规范准备接受附加责任的对象具体构件:实现抽象构件,通过装饰角色为其添加新的功能抽象装饰:继承抽象构件,并包含具体构件的实例,可以通过其扩展具体构件的功能具体装饰:实现抽象装饰的相关方法,并给具体构件对象添加附加的责任装饰模式的UML类图原创 2020-05-13 10:49:07 · 451 阅读 · 0 评论 -
结构型模式----代理模式(C++)
文章目录设计模式----代理模式实现和结构模式组成模式特性优点缺点代理模式UML类图代理模式实例设计模式----代理模式代理模式为其它对象提供了一种代理以控制对这个对象的访问,在某些情况下,一个对象不适合或不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用实现和结构代理模式通过定义一个抽象主题的代理来包含真是主题,从而实现真实主题的访问模式组成抽象角色:通过接口或抽象类声明真实角色实现的业务方法代理角色:实现抽象角色,是真实角色的代理,通过真实角色的业务逻辑方法原创 2020-05-12 16:31:39 · 458 阅读 · 0 评论 -
C++设计模式
文章目录C++设计模式重新认识面向对象面向对象原则设计模式分类方法C++设计模式重新认识面向对象从宏观层面看,面向对象的构建方式更能适应软件的变化,能将变化带来的影响降到最小从微观层面看,面向对象的方式更强调各个类的“责任”,由需求变化导致的新增类型不应该影响到原来类型对象的含义从语言实现层面看,对象封装了代码和数据从规格层面看,对象是一系列可被使用的公共接口从概念层面看,对象是拥有某种责任的抽象面向对象原则依赖倒置原则高层模块不应该依赖于底层模块,抽象不应该依赖于细节实原创 2020-05-10 22:30:45 · 441 阅读 · 0 评论 -
创建型模式----单例模式(C++)
文章目录设计模式----单例模式实现原理实现单例模式的步骤”饿汉式“和“懒汉式”单例模式实例设计模式----单例模式单例模式指一个类只有一个实例,且该类能自行创建这个实例的一种模式;例如:windows中只能有一个任务管理器实现原理通常情况下,普通类的构造函数是公有的,外部类可以通过"new 构造函数()"来生成多个实例,但是实现单例模式却需要不同的操作方法实现单例模式的步骤构造函数私有化增加静态私有的当前类的指针变量提供静态对外接口,让用户获得单例对象”饿汉式“和“懒汉式”饿汉原创 2020-05-09 17:18:18 · 585 阅读 · 0 评论 -
创建型模式----抽象工厂模式(C++)
文章目录设计模式----抽象工厂模式实现原理角色组成抽象工厂模式UML类图抽象工厂实例设计模式----抽象工厂模式抽象工厂模式用于产品族的构建,是所有形态的工厂模式中最为抽象和最具一般性的模式抽象工厂模式是一种为访问类提供一个创建一组或相互依赖对象的接口,且访问类无须指定所要产品的具体类就能得到抽象工厂模式是工厂方法模式的升级版本,工厂方法模式只生产一个等级的产品,而抽象工厂模式可以生产多个等级的产品实现原理抽象工厂模式是针对产品族的,而不是像工厂方法模式针对一个产品等级角色组成和工厂方法原创 2020-05-08 17:39:07 · 445 阅读 · 0 评论 -
创建型模式----工厂方法模式(C++)
文章目录设计模式----工厂方法模式实现方式角色结构特性优点缺点工厂方法模式UML类图工厂方法模式实例设计模式----工厂方法模式工厂方法模式的核心是封装类中变化的部分,提取其中善变的部分为独立类,通过依赖注入以达到解耦、复用和方便拓展的目的工厂方法模式可以解决简单工厂模式的后期拓展问题,不违反“开闭原则”实现方式工厂方法模式对简单工厂模式进行了抽象,将工厂(Factory)类抽象化,这...原创 2020-05-08 14:50:58 · 305 阅读 · 0 评论 -
设计模式----简单工厂模式(C++)
文章目录设计模式----简单工厂模式实现方式特性优点缺点简单工厂模式实例设计模式----简单工厂模式简单工厂模式属于创建型模式,又叫静态工厂方法模式,但不属于23种GOF模式之一简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例,它是工厂模式种最简单实用的模式实现方式简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪种产品类的实例简单工厂模式所包含的角色和职责如下...原创 2020-05-08 09:52:24 · 492 阅读 · 0 评论 -
使用StarUML使用类图的实现关系箭头提示Invalid connection (Interface Realization)
在使用StarUML绘制类图时,当需要绘制之间为实现关系时,总是无法绘制,受到Invalid connection (Interface Realization)的提示但是其它的连接关系都能正常使用,唯独它无法使用,让人很是不能理解出现这样的问题,首先需要从自身寻找原因,这么好的软件,肯定是自己不会用(狗头)废话不多说,直接上解决方案如果需要绘制该连线,需要在切换选项卡为Compos...原创 2020-05-07 22:08:45 · 3393 阅读 · 0 评论