- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
面向对象编程以及在安霸SDK中的运用
杜成健
前言 4
1 面向对象编程 5
1.1 面向对象编程(OOP) 简介 5
1.2 面向对象程序设计的基本特点和技巧 5
1.3 面向对象设计原则 5
1.3.1 总则: 开闭原则(Open Closed Principle,OCP) 5
1.3.2 其他原则 5
1.4 生活中的实际运用举例 6
2 安霸相机系统简介 7
2.1 安霸相机的启动过程及其对象运行示意图 7
2.2 APP 任务初始化介绍 8
2.2.1 APP任务hcmgr的主函数 8
2.2.2 app_pre_init(前置初始化) 8
2.2.3 app_init(初始化) 8
2.2.4 app_post_init(后续初始化) 9
3 面向对象程序设计的原则和方法在 AMB SDK 中的运用 10
3.1 驱动的设计实现 10
3.1.1 VOUT abstract factory 11
LCD 驱动 11
HDMI 驱动 11
3.1.2 VIN abstract factory 12
IMAGE SENSOR 驱动 12
LENS驱动 12
3.2 Application设计实现 12
3.2.1 APP和APP manager 13
AMB APP manager 13
? 接口文件路径 13
? 类结构图 13
AMB APP 13
? 接口文件路径 13
? 类结构图 14
? 通用的APP举例 14
3.2.2 APP 的实现 14
Flow factory 15
? Widget manager 15
? Widget 16
? Widget和App举例(文件路径结构) 16
GUI factory 17
3.2.3 Vin app factory 17
Image sensor app 17
? 接口文件路径 17
? 安装app_sensor_t和sensor_obj_t 18
? APP中以“桥”模式调用Image sensor driver 示意图 21
Image sensor 参数代理 21
Lens app 21
3.2.4 Vou app factory 22
LCD 22
? 接口文件路径 22
? 安装app_lcd_t和LCD_dev_t 22
? 从APP中以“桥”模式调用LCD driver 示意图 25
3.3 本章讨论的所有objects回顾 25
前言
泥潭,焦油坑
史前史中,没有别的场景比巨兽在焦油坑中垂死挣扎的场面更令人震撼。恐龙、猛犸象、剑齿虎在焦油中挣扎。它们挣扎得越是猛烈,焦油纠缠得越紧,没有任何猛兽足够强壮或具有足够的技巧,能够挣脱束缚,它们最后都沉到了坑底。
很多大型软件系统开发就犹如这样一个焦油坑,很多大型和强壮的动物在其中剧烈地挣扎。他们中大多数开发出了可运行的系统——不过,其中只有非常少数的项目满足了目标、时间进度和预算的要求。各种团队,大型的和小型的,庞杂的和精干的,一个接一个淹没在了焦油坑中。表面上看起来好像没有任何一个单独的问题会导致困难,每个都能被解决,但是当它们相互纠缠和累积在一起的时候,团队的行动就会变得越来越慢。对问题的麻烦程度,每个人似乎都会感到惊讶,并且很难看清问题的本质。
软件设计的面向对象的设计思想,就是让团队安全通过“焦油坑”的重要方法之一。
面向对象编程
面向对象编程(OOP) 简介
面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)是一种计算机编程架构。OOP 的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成。OOP 达到了软件工程的三个主要目标:重用性、灵活性和扩展性。为了实现整体运算,每个对象都能够接收信息、处理数据和向其它对象发送信息。
面向对象程序设计的基本特点和技巧
对象、类、数据抽象、继承、动态绑定、数据封装、多态性、消息传递等
面向对象设计原则
总则: 开闭原则(Open Closed Principle,OCP)
开闭原则是面向对象设计的根本原则,其他原则和方法技巧等,都是对这个核心思想的细化,解释等。
此原则是由Bertrand Meyer提出的。原文是:“Software entities should be open for extension,but closed for modification”。就是说模块应对扩展开放,而对修改关闭。模块应尽量在不修改原(是“原”,指原来的代码)代码的情况下进行扩展。
其他原则
里氏代换原则
里氏代换原则是由Barbara Liskov提出的。如果调用的是父类的话,那么换成子类也完全可以运行。
依赖倒转原则
抽象不应
文档评论(0)