设计模式
文章平均质量分 90
王小闹儿
这个作者很懒,什么都没留下…
展开
-
设计模式(三)
一、设计模式概述 1.1 掌握设计模式的层次 1)第1层:刚开始学编程不久,听说过什么是设计模式 2)第2层:有很长时间的编程经验,自己写了很多代码,其中用到了设计模式,但是自己却不知道 3)第3层:学习过了设计模式,发现自己已经在使用了,并且发现了一些新的模式挺好用的 4)第4层:阅读了很多别人写的源码和框架,在其中看到别人设计模式,并且能够领会设计模式的精妙和带来的好处。 5)第5层:代码写着写着,自己都没有意识到使用了设计模式,并且熟练的写了出来。 ...原创 2021-04-07 08:51:35 · 92 阅读 · 0 评论 -
设计模式(二)——UML类图以及类图的六大关系
目录 一、总体介绍 二、UML图 三、类以及类图的六大关系 3.1 依赖关系 3.2 泛化(继承)关系(generalization) 3.3 实现关系(implementation) 3.4 关联关系(association) 3.5 聚合关系(aggregation) 3.6 组合关系(composite) 课程链接:https://www.bilibili.com/video/BV1G4411c7N4?p=23&spm_id_from=pageDriver...原创 2021-04-06 08:43:43 · 285 阅读 · 0 评论 -
设计模式(一)——设计模式的七大原则
一、引子 1.1 设计模式常用的七大原则有: 1) 单一职责原则 2) 接口隔离原则 3) 依赖倒转原则 4) 里氏替换原则 5) 开闭原则ocp 6) 迪米特法则 7) 合成复用原则 1.2 几个经典的设计模式面试题 1.2.1 金融借贷平台项目——状态模式 借贷平台的订单,有审核发布抢单等等步骤,随着操作的不同,会改变订单的状态,项目中的这个模块实现就会使用到状态模式,请你使用状态模式进行设计,并完成实际代码 问题分析 这类代码难以应对变化,在添加一种状态时,我...原创 2021-03-16 09:14:50 · 1383 阅读 · 0 评论 -
使用EA进行uml建模
课程链接:https://www.bilibili.com/video/BV117411K721?from=search&seid=7826826336642960984 新手向教程: https://www.cnblogs.com/lionsblog/p/10282816.html https://blog.csdn.net/cfeibiao/article/details/8545083 ...原创 2020-08-28 00:22:21 · 585 阅读 · 0 评论 -
设计模式(对象性能模式)(单例模式)
对象性能模式 继承的内存代价很小 虚函数的内存代价很多。某些会有倍乘效应(比如本来可以做一次,但是用了虚函数要做一万次) 单例模式 单例模式的类声明 class Singleton{ private: //对构造函数放在private区域防止对象被创建 Singleton(); //拷贝构造函数放在private区域防止对象被创建 ...原创 2019-03-13 02:28:40 · 176 阅读 · 0 评论 -
设计模式(二)(简单工厂模式、工厂模式、抽象工厂模式)
设计模式 简单工厂模式 不用工厂模式的生成对象的弊端的例子——构造函数最好不要写业务,我们的业务实现太依赖于构造函数了 class Fruit{ public: Fryit(string kind){ if(this->kind=="apple"){} else if(this->kind=="banana"){} ...原创 2019-03-12 21:47:50 · 157 阅读 · 0 评论 -
设计模式(一)(设计模式分类、重构关键技法、重新认识面相对象、八大设计原则)
设计模式分类 从目的来看: 创建型模式——如何创建对象 结构型模式——如何实现类或对象的组合 行为型模式——类或对象怎样交互以及怎样分配职责 从范围来看: 类模式处理类与子类的静态关系——偏重于继承方案 对象模式处理对象间的动态关系——偏重于组合方案 从封装变化角度对模式分类: 组件协作模式 对象性能 数据结构 单一职责 ...原创 2019-03-12 22:00:37 · 279 阅读 · 0 评论 -
用c++实现《图解设计模式》——observer模式(老师说这个很常用)
他是MVC的重要组成部分 动机 模式定义 结构 对于一个实现文件切割的类,如果需要对其增加一个显示进度条的选项,使得用户可以知道文件切割的进度。如果直接在类中增加一个字段来表示进度条,这种修改方式好不好? 代码如下(代码都是伪代码: mainform.cpp //一个实现文件分割器是类 class MainForm : pu...原创 2018-11-29 02:20:48 · 188 阅读 · 0 评论 -
用c++实现《图解设计模式》——template method 模式
定义一个操作中的算法骨架,将某些实现延迟到子类(就是利用虚函数,让子类去实现某些功能,这些方法一般都设置成protected的,因为public出去没有意义,你是希望子类的实现这个方法)。Template method使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 在父类中定义处理流程的框架,在子类中实现具体处理的模式称为template method。 设计模式...原创 2018-11-24 09:46:33 · 173 阅读 · 0 评论 -
用c++实现《图解设计模式》——iterator模式
书里面都是Java实现的,书上的知识点不再赘余。这里用c++把书上的设计模式实现一下,加深自己对于该设计模式的理解。 定义: 特点: 通过迭代器隔离算法和容器。 为遍历不同的集合结构提供一个统一的接口,从而支持同样的算法在不同的集合结构上进行操作。 缺点: 虚函数调用是有性能成本的。需要根据虚函数的表指针去找你的函数地址,每次都要进行二次指针的间接运算。 ...原创 2018-11-24 01:02:10 · 279 阅读 · 0 评论