C++ 设计模式 —— 控制器设计模式(实现功能模块间通信)

在构建更复杂的程序时,你需要创建多个算法来协同工作,以实现一些高级功能。更合理地构建程序并让所有的类能互相通信,程序将会变得越来越复杂。因此一个类中(即为控制器类)集中对程序进行控制,是十分有益的。这正是控制器背后的思想。

控制器(Controller)是一个特殊的对象,充当着程序中心的角色。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
第1章 概述 1.1 采用C语言提高编制单片机应用程序的效率 1.2 C语言具有突出的优点 1.3 AvR单片机简介 1.4 AvR单片机的C编译器简介 第2章 学习AVR单片机C程序设计所用的软件及实验器材介绍 2.1 IAR Enlbedded Workbench IDE C语言编译器 2.2 AVR Studio集成开发环境 2.3 PonyProg2000下载软件及SL—ISP下载软件 2.4 AVR DEM0单片机综合实验板 2.5 AvR单片机JTAG仿真器 2.6 并口下载器 2.7 通用型多功能USB编程器 第3章 AvR单片机开发软件的安装及第一个入门程序 3.1 安装IAR for AVR 4.30集成开发环境 3.2 安装AVR Studio集成开发环境 3.3 安装PonyProg2000下载软件 3.4 安装SLISP下载软件 3.5 AvR单片机开发过程 3.6 第一个AVR入门程序 第4章 AVR单片机的主要特性及基本结构 4.1 ATMEGA16(L)单片机的产品特性 4.2 ATMEGAl6(L)单片机的基本组成及引脚配置 4.3 AvR单片机的CPU内核 4.4 AvR的存储器 4.5 系统时钟及时钟选项 4.6 电源管理及睡眠模式 4.7 系统控制和复位 4.8 中断 第5章 c语言基础知识 5.1 c语言的标识符与关键字 5.2 数据类型 5.3 AVR单片机的数据存储空 5.4 常量、变量及存储方式 5.5 数组 5.6 C语言的运算 5.7 流程控制 5.8 函数 5.9 指针 5.10 结构体 5.11 共用体 5.12 中断函数 第6章 ATMEGA16(L)的I/o端口使用 6.1 ATMEGAl6(L)的I/0端口 6.2 ATMEGAl6(L)中4组通用数字I/0端口的应用设置 6.3 ATMEGA16(L)的I/o端口使用注意事项 6.4 ATMEGAl6(L)PB口输出实验 6.5 8位数码管测试 6.6 独立式按键开关的使用 6.7 发光二极管的移动控制(跑马灯实验) 6.8 0~99数字的加减控制 6.9 4×4行列式按键开关的使用 第7章 ATMEGAl6(L)的中断系统使用 7.1 ATMEGA16(L)的中断系统 7.2 相关的中断控制寄存器 7.3 INT1外部中断实验 7.4 INTO/INTl中断计数实验 7.5 INTO/INTl中断嵌套实验 7.6 2路防盗报警器实验 7.7 低功耗睡眠模式下的按键中断 7.8 4×4行列式按键的睡眠模式中断唤醒设计 第8章 ATMEGAl6(L)驱动16×2点阵字符液晶模块 8.1 16×2点阵字符液晶显示器概述 8.2 液晶显示器的突出优点 8.3 16×2字符型液晶显示模块(LCM)特性 8.4 16×2字符型液晶显示模块(LCM)引脚及功能 8.5 16×2字符型液晶显示模块(LCM)的内部结构 8.6 液晶显示控制驱动集成电路HD44780特点 8.7 HD44780工作原理 8.8 LCD控制器指令 8.9 LCM工作时序 8.10 8位数据传送的ATMEGAl6(L)驱动16×2点阵字符液晶模块的子函数 8.11 8位数据传送的16×2LCM演示程序1 8.12 8位数据传送的16×2LCM演示程序2 8.13 4位数据传送的ATMEGAl6(L)驱动16×2点阵字符液晶模块的子函数 8.14 4位数据传送的16×2LCM演示程序 第9章 ATMEGAl6(L)的定时/计数器 9.1 预分频器和多路选择器 9.2 8位定时/计时器T/C0 9.3 8位定时/计数器0的寄存器 9.4 16位定时/计数器T/C1 9.5 16位定时/计数器1的寄存器 9.6 8位定时/计数器T/c2 9.7 8位T/C2的寄存器 9.8 ICC6.3 1AC语言编译器安装 9.9 定时/计数器1的计时实验 9.10 定时/计数器O的中断实验 9.11 4位显示秒表实验 9.12 比较匹配中断及定时溢出中断的测试实验 9.13 PWM测试实验 9.14 0~5V数字电压调整器 9.15 定时器(计数器)0的计数实验 9.16 定时/计数器1的输入捕获实验 第10章 ATMEGAl6(L)的USART与PC机串行通信 10.1 ATMEGAl6(L)的异步串行收发器 10.2 USART的主要特点 10.3 时钟产生 10.4 帧格式 10.5 USART的寄存器及设置 10.6 USART的初始化 10.7 数据发送——USART发送器 10.8 数据接收——USART接收器 10.9 ATMEGAl6(L)与PC机的通信实验1 10.10 ATMEGAl6(L)与PC机的通信实验2 10.11 ATMEGAl6(L)与P
第1章 单片机基础 1.1 单片机技术发展状况 1.2 51系列单片机体系结构 1.2.1 内部结构 1.2.2 存储器组织结构 l.2.3 内部功能模块 l.2.4 外部引脚 1.2.5 系统资源扩展 1.3 单片机的编程方法 第2章 C语言编程基础 2.1 基本概念 2.1.1 概述 2.1.2 变量与算术表达式 2.1.3 for语句 2.1.4 符号常量 2.2 数据类型、运算符和表达式 2.2.1 C语言的数据类型 2.2.2 常量与变量 2.2.3 整型数据 2.2.4 实型数据 2.2.5 字符型数据 2.2.6 运算符 2.2.7 表达式 2.3 程序控制语句 2.3.1 程序的3种基本结构 2.3.2 条件控制语句 2.3.3 程序应用举例 2.4 循环控制语句 2.4.1 while语句 2.4.2 dowhile语句 2.4.3 for语句 2.4.4 break与continue语句 2.4.5 程序应用举例 2.5 小结 第3章 C语言高级编程 3.1 函数与程序结构 3.1.1 函数的基本知识 3.1.2 返回非整数值的函数 3.1.3 外部变量 3.1.4 作用域规则 3.1.5 头文件 3.1.6 静态变量 3.1.7 寄存器变量 3.1.8 分程序结构 3.1.9 初始化 3.1.10 递归 3.2 数组 3.2.1 一维数组 3.2.2 维数组 3.2.3 多维数组 3.2.4 数组的初始化 3.3 指针 3.3.1 指针与指针变量. 3.3.2 指针变量的定义与引用 3.3.3 指针运算符与指针表达式 3.3.4 指针与数组 3.3.5 指针的地址分配 3.3.6 指针数组 3.3.7 指向指针的指针 3.4 占构体与共用体 3.4.1 结构体类型变量的定义和引用 3.4.2 结构体数组的定义和引用 3.4.3 结构体指针的定义和引用 3.4.4 共用体 3.5 小结 第4章C51程序设计 4.1 C51对标准C语言的扩展 4.1.1 存储区域 4.1.2 数据变量分类 4.1.3 存储器模式 4.1.4 绝对地址的访问 4.1.5 指针 4.1.6 函数 4.2 C5 1函数库 4.2.1 字符函数CTYPE.H 4.2.2 一般I/O函数STDIO.H 4.2.3 字符串函数STRING.H 4.2.4 标准函数STDLIB.H 4.2.5 数学函数MATH.H 4.2.6 绝对地址访问ABSACC.H 4.2.7 内部函数INTRINS.H 4.2.8 变量参数表STDARG.H 4.2.9 全程跳转SETJMPH 4.2.10 访问SFR和SFR bit地址REGxxx.H 4.3 C51程序编写 4.3.1 C程序基本结构 4.3.2 编写高效的C51程序及优化程序 第5章 Windows集成开发环境μVision2 5.1 μVision2编辑界面及其功能介绍 5.1.1 μVision2界面综述 5.1.2 主菜单栏 5.1.3 μVision2功能按钮 5.1.4 μVision2窗口环境 5.2 应用μVision2开发流程介绍 5.2.1 建立新项目 5.2.2 常用环境配置 5.2.3 代码优化 5.2.4 目标代码调试 5.3 CPU仿真 5.3.1 μVision2调试器 5.3.2 调试命令 5.3.3 存储器空 5.3.4 表述(Expressions) 5.3.5 技巧 5.4 深入了解μVision2 5.4.1 μVision2的项目管理 5.4.2 使用技巧 5.4.3 μVision2调试函数 第6章 C5l编译器 6.1 预处理 6.1.1 宏定义 6.1.2 文件包含 6.1.3 条件编译 6.1.4 其他预处理命令 6.2 C51编译器控制指令详解 6.2.1 源控制指令 6.2.2 列表控制指令 6.2.3 目标控制指令 6.3 C5l的高级配置文件 6.3.1 目标程序启动配置文件——STARTUP.A51. 6.3.2 CPU初始化文件——START751.A51 6.3.3 静态变量初始化文件——INT.A51 6.3.4 专用变量初始化文件——INIT751.A51 第7章 C51的典型资源编程 7.1 中断系统设计 7.2 定时/计数器的使用 7.3 I/O口的使用 7.4 扩展存储器 7.4.1 外部ROM 7.4.2 外部RAM 7.4.3 外部串行E2PROM 7.5
控制器设计模式是一种软件设计模式,用于将用户界面和业务逻辑分离。它主要用于管理用户输入和处理应用程序的行为。控制器设计模式的主要目标是实现可维护性和可扩展性。 在控制器设计模式中,控制器充当了一个中介者的角色,协调用户界面组件(如视图)和业务逻辑组件(如模型)之的交互。它接收用户输入并将其传递给适当的业务逻辑组件进行处理,然后将结果返回给用户界面进行展示。 控制器设计模式通常由以下几个组件组成: 1. 控制器(Controller):负责接收用户输入,并将其路由到适当的业务逻辑组件。它还可以处理与用户界面交互的相关逻辑,例如验证输入、更新视图等。 2. 模型(Model):包含应用程序的核心业务逻辑。它负责处理数据的读取、修改和存储等操作,并提供接口供控制器进行调用。 3. 视图(View):负责展示用户界面,并将用户输入转发给控制器进行处理。视图通常是被动的,它根据模型的状态来刷新自身的显示。 控制器设计模式的优点包括: - 提高代码的可维护性:将用户界面逻辑和业务逻辑分离,使代码更易于理解和修改。 - 提高代码的可重用性:不同的视图可以共享同一个控制器和模型,减少代码的重复编写。 - 支持测试驱动开发:由于控制器负责处理用户输入和业务逻辑,因此可以更方便地进行单元测试。 总的来说,控制器设计模式是一种架构模式,通过将用户界面和业务逻辑分离,提高了软件系统的可维护性和可扩展性。它在许多框架和应用程序中被广泛使用,例如MVC(Model-View-Controller)模式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五道口纳什

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值