摘要: Observer Pattern 动机 在软件构件过程中,需要为某些对象建立一种“通知依赖关系”——一个对象(目标对象)的状态发生改变,所有的依赖对象(观察者对象)都将得到通知。如果这样的依赖关系过于紧密,将使软件不能很好地抵御变化。 使用面向对象技术,可以将这种依赖关系弱化,并形成一种稳定的依赖关 阅读全文
posted @ 2021-08-08 17:05 bear-Zhao 阅读(28) 评论(0) 推荐(0) 编辑
摘要: Strategy Pattern 模式定义 定义一系列算法,把它们一个个封装起来,并且使它们可互相替换(变化)。该模式使得算法可独立于使用它的客户程序(稳定)而变化(扩展,子类化)。 结构 要点总结 Strategy及其子类为组件提供了一系列可重用的算法,从而可以使得类型在运行时方便地根据需要在各个 阅读全文
posted @ 2021-08-08 17:04 bear-Zhao 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 重构关键技法 静态→动态 早绑定→晚绑定 继承→组合 编译时依赖→运行时依赖 紧耦合→松耦合 ”组件协作“模式 “组件协作”模式通过晚期绑定,来实现框架与应用程序之间的松耦合,是二者之间协作时常用的 模式。 典型模式:Template Method、Strategy、Observer/Event T 阅读全文
posted @ 2021-07-07 19:53 bear-Zhao 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 设计模式简介 什么是设计模式——“每一个模式描述了一个在我们周围不断重复发生的问题以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动”。 历史性著作:《设计模式:可复用面向对象软件地基础》 一、从面向对象谈起 两大思维 底层思维:向下,如何把握机器底层从围观理解对象构造 阅读全文
posted @ 2021-04-29 15:43 bear-Zhao 阅读(54) 评论(0) 推荐(0) 编辑
摘要: C++的四种强制类型转换 阅读全文
posted @ 2021-04-27 17:04 bear-Zhao 阅读(152) 评论(0) 推荐(0) 编辑
摘要: Lambda表达式 匿名函数 Capture list (外部变量访问方式说明符) 可以是=或&,表示中用到的、定义在外面的变量在中是否允许被改变 =表示只读,&表示可修改。在[]为空时,不使用定义在外面的变量 →可以省略,让编译器自行推导 [capture list] (parameter lis 阅读全文
posted @ 2021-04-26 14:52 bear-Zhao 阅读(329) 评论(0) 推荐(0) 编辑
摘要: C++学习过程中踩坑记录及应注意的点 阅读全文
posted @ 2021-04-23 20:38 bear-Zhao 阅读(50) 评论(0) 推荐(0) 编辑
摘要: C/C++防止头文件被重复多次包含的处理方法 #ifndef 标识符 #define 标识符 /* 头文件内容 */ #endif 以上是以前比较通用的做法,现在有更好的做法,如下: 在头文件的任意行写 #pragma once 阅读全文
posted @ 2021-04-21 22:08 bear-Zhao 阅读(227) 评论(0) 推荐(0) 编辑
摘要: gdb的使用及常用命令 阅读全文
posted @ 2021-04-20 16:14 bear-Zhao 阅读(807) 评论(1) 推荐(0) 编辑
摘要: C/C++的基本编译和执行过程 预处理 命令:g++ -E test.cpp > test.i 输入一个.cpp文件 主要工作:将头文件展开;宏展开; 生成一个.i文件 编译 命令:g++ -g -S test.cpp //生成一个.s的汇编文件 主要工作:词法分析,语法分析,语义分析,代码优化,代 阅读全文
posted @ 2021-04-20 14:05 bear-Zhao 阅读(232) 评论(0) 推荐(0) 编辑