- 博客(118)
- 资源 (4)
- 收藏
- 关注
原创 设计模式之(Proxy)代理模式
1. 类图 2. 总结 代理模式包装一个对象,并为该对象提供一种访问控制。代理模式可应用于包装远程访问的对象(网络),客户调用代理访问远程对象就像访问本地对象一样,客户甚至都不知道远程对象的存在。代理模式还常用于包装开销比较大的对象,当客户端访问的创建时间比较长的对象时,代理首先构建一个“假”的对象,立即访问,然后再慢慢创建真实的对象。代理模式还可以用于控制对像的访问
2014-11-30 17:23:19
835
原创 设计模式之(Composite)组合模式
1.类图 2. 总结 当有数个对象集合,且对象之间有"整体/部分"关系时(多数为树形结构,某些节点保护子节点,某些节点没有子节点(叶子)),客户端希望用透明的方式使用所有节点时,可以使用Composite(组合)模式。MFC中窗口的组合就使用的是组合模式,一个窗口可以包含很多子窗口,而客户端可以调用统一的方法处理所有窗口,比如说隐藏窗口。
2014-11-26 21:41:43
727
原创 设计模式之(Iterator)迭代器模式
1. 类图 2. 总结 迭代器模式用于客户端程序用统一的方式遍历各种数据集合,而不需要知道数据集合的实现,同时可以自由扩充数据集合。每一种数据集合都需要单独实现一个针对与自身类型的迭代器。
2014-11-26 21:25:25
694
原创 设计模式之(Template Method)模版方法模式
1. 需求: 设计一个水果榨汁机程序,该程序可以完成橘子、苹果等水果的榨汁,而且该水果榨汁机还可以完成水果削皮和去核。 2. 分析: 不同水果的榨汁流程是一样的,都是先把水果准备好,然后搅碎,然后再把汁液漏出。但是不同水果的准备过程不一样,橘子只需要剥皮,而苹果需要先削皮,然后去核。所以我们可以将不同水果的准备过程封隔离开来,将榨汁流程封装在一起。 3. 类图:
2014-11-24 20:18:36
722
原创 设计模式之(Facade)外观模式
1. 需求 要设计一个家庭媒体中心程序,可以连接DVD,电视(TV)和功放(Sounder),连接好之后,可以一键看电影,一键听音乐。(不用媒体中心的话看电影需要依次打开DVD,TV和Sounder)。 2. 分析 我们需要将实现细节封装起来,只暴露出来最简单的接口给客户程序,比如说WatchMovie和ListenMusic。 3. 类图 4. 总结
2014-11-22 10:51:46
652
原创 设计模式之(Adapter)适配器模式
1.需求 有个环境监测系统用于获取环境的各种数据并显示,包括温度、湿度、紫外线等。原来使用的是月亮(Moon)公司的温度传感器,但是这家公司的传感器经常测的数据不正确,于是领导要把传感器换成市场上最好的传感器厂商太阳(Sun)公司的温度传感器。现在需要你去做修改程序以接入Sun公司的温度传感器。(注:Moon公司传感器的获取温度的接口是GetTemperature,Sun公司获取传感器的接
2014-11-20 21:48:02
739
原创 设计模式之(Command)命令行模式
1.需求 为一个开关设计程序,这个开关有N按钮,同时对应N个插槽,要求可以接入任何电器厂商的API,从而可以控制任何电器。目前只有电灯和电视两种电器,要求写一个Demo程序,按钮1可以打开电灯。按钮2可以打开电视并且切换到上一次打开的频道。打开电视换频道需要打开机顶盒并且对机顶盒切换频道。 2. 分析 每个厂商的API不一致,且每个电器的打开流程都不一样,我们需要将这些差异封装
2014-11-20 20:32:32
776
原创 设计模式之(Singleton)单例模式的几种实现
第一种:低效率实现 这种实现方法,优点是实现简单,缺点是在多线程频繁访问下效率比较低,经常出现锁竞争。适应于不需要频繁访问实例的情况下。 class Singleton{public: static Singleton* GetInstance() { AutoLock lock(mutex); if (!
2014-11-19 20:45:59
670
原创 设计模式之(Abstract Factory)抽象工厂
1. 需求: 设计一个电脑组装程序,用于组装品牌电脑。组装所用的配件(主板、硬盘、显示器)全部由品牌提供。比如组装一台联想的电脑,则主板、硬盘和显示全部由联想提供。(目前只有Lenovo和Dell两种品牌) 2. 分析 所有品牌的电脑组装流程都一样,不同的各家品牌有自己专用的配件,所以组装流程应该和获取配件两部分隔离开来。 3. 类图 抽象工厂模式主要用于创
2014-11-18 20:55:31
1172
1
原创 设计模式之(Factory method)工厂方法模式
1.需求 开发一个测试工具专门用于测试手机,测试流程打开分为以下几步:测试开机速度->测试屏幕亮度->测试相机效果。手机有很多种品牌:三星、小米、魅族等等。 2. 分析 不同的手机的测试流程是一样的。我们可以将不变的测试流程和具体的手机隔离起来,当需要检测新的品牌的手机的时候,不需要更改测试流程,只要添加一个手机就行了。 3.类图
2014-11-18 20:23:28
821
原创 设计模式之(Decorator)装饰者模式
1.需求 设计一个计算一块手机价格的程序,不同的存储容量(16GB和32GB)价格不同,不同的颜色(白色和黑色)价格不同,不同的网络制式(联通和电信)价格不同。当用户选定好配置后,程序计算其价格。 2.分析 考虑到未来存储容量可能升级到64GB,网络制式可能增加移动或者其他运营商,颜色可能增加更多的颜色,所以我们需要一种弹性的设计,可以自由添加存储容量,颜色和制式,同时程序
2014-11-17 20:50:21
670
原创 设计模式之(Observer)观察者模式
需求: 有一个报社,用户可以随时订阅报纸,也可以随时取消订阅。当每天的新闻来的时候,报社用邮递员投递给订阅了报纸的用户。订阅者有老人、小孩和青年。 分析: 报社相当于被观察的对象,用户相当于观察者,一旦新闻有更新,报社就通知所有观察者。 类图: 扩展: 该类图使用的是“推”的方式将新闻推送给订阅者。还可以使用一种的“拉
2014-11-16 08:21:02
675
原创 设计模式之(Strategy)策略模式
需求: 我们需要设计一种动作游戏。游戏有个法师和战士两种角色,角色以后还可能会增加,比如说修行者之类的。法师和战士可以装备不同的武器和外套,武器目前有枪和迫击炮两种,外套有隐形外套和普通外套两种。武器和外套以后也可能随时增加。 设计分析: 在系统中我们看到有三种变化的需求,一是角色,二是武器,三是外套。同时角色有一些共同的行为,都可以跑,而且都必须装备武器和外套。我们将采用策略
2014-11-16 08:20:15
750
转载 Proactor模式
第8章 前摄器(Proactor):用于为异步事件多路分离和分派处理器的对象行为模式Irfan Pyarali Tim Harrison Douglas C. Schmidt Thomas D. Jordan摘 要 现代操作系统为开发并发应用提供了多种机制。同步多线程是一种流行的机制,用于开发同时执行多个操作的应用。但是,线程常常有很高的性能开销,并且需要对同步模式和原
2014-11-04 22:06:03
1586
原创 Boost学习笔记-智能指针
1. 智能指针scoped_ptr只在作用域内生效,离开作用域既释放资源,不能复制和赋值。类似于标准库的auto_ptr,但它相对于auto_ptr的优势在于,他的要求更严格,使用起来更安全。auto_ptr拥有转移语义,当使用了赋值和复制操作时可能操作未定义行为。scoped_array scoped_array的数组形式,区别在于他管理的对象是用new []分
2014-10-22 21:05:57
939
原创 打车软件之痛
打车软件为何没有火起来?就这个问题我谈谈自己的观点。首先从打车软件解决的需求谈起,打车软件主要解决了两大需求: 1.需要打车用户打不到车的问题 在一线城市的比较繁华的路口,由于打车需求巨大,用户很难打车,往往好不容易看到一辆的士,却永远都是有人状态。 当去到一个陌生的地方,不知道哪里可以快速的打的到车,经常有时候一个陌生的道路上半天都看不到出租车。
2014-05-01 17:47:53
1573
原创 移动社交大地图
移动社交大地图1. 移动社交的分类与当前现状1.1 移动社交主要分为类1. 基于熟人的社交例如“微信”2. 基于陌生人的社交例如“陌陌”3. 基于婚恋的社交例如“世纪佳缘”4. 基于兴趣的社交例如“百度贴吧”1.2 移动社交的主要表现形式1. 社区/论坛 例如天涯论坛、百度贴吧等2. SNS 例如QQ空
2014-04-17 23:28:51
1690
1
原创 嵌入式web监控小车文档以及代码开放下载
经常有人QQ上问我要嵌入式web监控小车的代码,我也懒得发了,这里共享给大家去下载,6分不算多吧,这可是我的毕业设计。这个压缩包包括实现代码,根文件系统,以及相关文档http://download.csdn.net/detail/ayangke/5097807
2013-03-05 22:14:52
1923
原创 Android初步-HelloWorld
Android初步-HelloWorld第一次接触Android开发,挺新鲜滴,弄了一个Helloworld,记录一些笔记。用Eclipce新建一个HelloWorld,有如下内容 这些内容的作用:一.src项目的源文件二.gen由Eclipse的ADT插件所产生每一个资源,R.java都会自动为该资源添加一个id,比如说button1=0xxxxx
2012-04-17 22:03:02
1472
原创 H.264嵌入式视频监控系统项目指导
转载请注明来自:http://blog.csdn.net/ayangke 杨锞 QQ:843308498快要找工作了,想将以前做的项目复习一下,同时给想做这个项目的童鞋一些指导。硬件:MINI2440 软件:Linux-2.6.32一、H.264介绍 H.264是一种视频压缩编码标准。该标准能够在较低带宽(2M以内)情况
2011-12-25 22:54:45
7261
4
原创 嵌入式WEB视频监控小车项目指导
转载请注明来自:http://blog.csdn.net/ayangke 上一个文档对H.264监控系统进行了讲解,这一个文档将对一种更容易实现视频监控的web方法进行讲解。 代码以及相关文档开放下载,加一个连接版面就乱了,调了好久都没调过来,悲剧了,后面看到的将就着看吧http://download.csdn.net/detail/ayangke/5097807
2011-12-25 15:02:33
20043
18
转载 看过几千封简历的人,写点如何网上投简历的心得吧
看过几千封简历的人,写点如何网上投简历的心得吧最近,看到国家下文告诉社会07年有XXX万,08年还有XXX万,09年还有600多万大学生等待找工作。希望大学生们"先就业再择业"。为什么我毕业时候国家没下这个文呢。。。闲话不说,做主管岗位6年了,看过几千封简历。这2周,公司大规模招聘,我基本就干一件事情,看简历。一天300~500封封。早中晚各看一次。 找工作很难吗
2011-12-11 23:17:22
3409
3
转载 嵌入式软件工程师应聘知识点
嵌入式软件工程师应聘 修改浏览权限 |删除 数据结构(C语言)部分常考的知识点:1、局部变量能、全局变量和静态变量2、堆和栈 3、Const、volatile、define、typedef的用途4、链表(比如链表的插入、删除和排序)5、排序(考查冒泡法的较多)6、可重入函数 、malloc函数7、指针(常考函数指针,函数指针,数组指针,指针数组和其他的应
2011-11-23 11:17:07
2816
原创 菜鸟修炼C语言小设计之——学生成绩管理系统
一、本设计涉及的重要C语言知识有: 1.单链表的各种操作2.文件流的操作3.单链表的排序二、本设计主要以下几个模块组成1.学生成绩添加模块2.学生成绩删除模块3.学生成绩修改模块4.学生成绩检索模块5.学生成绩显示模块(包括成绩排序)6.学生成绩保存模块效果图:本设计大概5、6百行代码左右,通过这个设计,本人感觉
2011-11-12 09:28:29
4613
5
原创 菜鸟修炼C语言小设计之——通讯录(二)
通讯录在通讯录(一)的基础上作了一些完善,添加了保存联系人的功能。主要涉及的C语言重要知识点有:文件流的操作代码:main.c#include #include "record.h"int menu_select(void);void hand_menu(int cmd, int *flag);int main(int argc, char *argv[]){
2011-11-05 09:37:49
1513
1
原创 菜鸟修炼C语言小设计之——通讯录(一)
这次的设计用到C语言的单向链表实现。包括的C语言重点知识有1.typedef的使用2.自定义宏的使用3.单向链表的实现和操作1.1 设计题目本课程设计的目的是学习建立链表,使用链表存储结构信息,增加链表结点及删除链表结点等基本操作。实际设计时,可增加数据信息及检索等功能。1.2 设计要求1.2.1 功能设计要求本设计要求实现如下功能:(1)本设计将重点放
2011-11-02 20:17:28
1562
原创 菜鸟修炼C语言小设计之——工资统计
本设计完成一个工资统计的小设计,涉及的C语言重点知识有:1,结构体2,结构体指针数组3,枚举类型1.1 设计题目本课程设计要求设计一个公司职员的数据结构,并使用结构指针数组存储职员信息,统计公司员工工资总额和平均工资。1.2 设计要求设计要求实现如下功能:(1)使用结构指针数组设计一个公司职员的数据结构,使用下述的结构定义:typedef structemp
2011-11-02 08:18:51
2912
原创 菜鸟修炼C语言小设计之——成绩统计
余从开始决定自学嵌入式到现在已经一年了,回顾一路走来学了linux系统管理、ARM编程、系统移植、驱动一系列课程,但是现在仍然感觉动手写代码的能力差之甚远,痛定思痛,于是重新开始修炼C语言,以求达到深入理解C语言并能写出高质量C代码的层次。我相信很多同学肯定和我一样,虽然了解C语言的基本语法,能写单片机和ARM程序或者解一些简单的题目,但都只停留在了解阶段,对C语言的精髓及其重点知之甚少。我决定一
2011-11-01 16:33:29
2315
3
原创 ARM-Linux移植之(四)——根文件系统构建
ARM-Linux移植之(四)——根文件系统构建K-Style 转载请注明来自于衡阳师范学院08电2 K-Style http://blog.csdn.net/ayangke,QQ:843308498 邮箱:yangkeemail@qq.com 相关工具版本:busybox-1.7.0 arm-linux-4.3.2 linux-2.6.22 1.配置busyb
2011-10-23 21:13:21
3362
原创 ARM-Linux移植之(三)——init进程启动流程分析
ARM-Linux移植之(三)——init进程启动流程分析K-Style 转载请注明来自于衡阳师范学院08电2 K-Style http://blog.csdn.net/ayangke,QQ:843308498 邮箱:yangkeemail@qq.com 我们通常使用Busybox来构建根文件系统的必要的应用程序。Busybox通过传入的参数来决定执行何种操作。当init进
2011-10-20 21:11:17
4726
1
原创 ARM-Linux移植之(二)——Linux2.6.22内核移植
ARM-Linux内核移植之(二)——Linux2.6.22内核移植K-Style 转载请注明来自于衡阳师范学院08电2 K-Style http://blog.csdn.net/ayangke,QQ:843308498 邮箱:yangkeemail@qq.com 平台:mini2440 交叉工具链:arm-linux-gcc-4.3.2 一、内核移植基本知识
2011-10-19 19:06:15
7038
5
原创 ARM-Linux移植之(一)——内核启动流程分析
ARM-Linux内核移植之(一)——内核启动流程分析K-Style 转载请注明来自于衡阳师范学院08电2 K-Style http://blog.csdn.net/ayangke,QQ:843308498 邮箱:yangkeemail@qq.com 内核版本:2.6.22 为什么要采用这样一个较低的版本进行移植了,因为韦东山大牛说了,低版本的才能学到东西,
2011-10-19 19:01:09
8284
转载 基于ARM-LINUX的温度传感器驱动-DS18B20
基于ARM-LINUX的温度传感器驱动(一)作者:冯建,华清远见嵌入式学院讲师。DS18B20数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢封装式,型号多种多样,有LTM8877,LTM8874等等。主要根据应用场合的不同而改变
2011-10-18 08:54:23
3520
1
转载 EABI和OABI
EABI和OABI作者:曹忠明,华清远见嵌入式学院讲师。相信很多学习嵌入式linux的人都碰到过这样一个问题:初学linux的时候大家都用的工具链版本多是3.4.5或3.4.2,名字为arm-linux-gcc或arm-softfloat-linux-gnu-gcc,
2011-10-18 08:47:46
1547
转载 ABI/EABI/OABI
ABI/EABI/OABI http://wiki.debian.org/ArmEabiPortArmEabiPort(..............................)TerminologyStrictly speakin
2011-10-18 08:46:55
1788
原创 S3C2440存储控制器和MMU浅析
S3C2440存储控制器和MMU浅析K-Style转载请注明来自于衡阳师范学院08电2 K-Style http://blog.csdn.net/ayangke,QQ:843308498 邮箱:yangkeemail@qq.com一、S3C2440存储控制器如果大家写过S3C2440的ARM裸机程序都应该知道通常SDRAM的起始地址是0X30000000,但是大家有没有想过为什
2011-10-17 12:26:12
3633
2
原创 Linux设备驱动工程师之路之——块设备驱动
Linux设备驱动工程师之路之——块设备驱动K-Style转载请注明来自于衡阳师范学院08电2 K-Style http://blog.csdn.net/ayangke,QQ:843308498 邮箱:yangkeemail@qq.com 一、重要知识点1.块设备和字符设备的区别 a.字符设备可访问字节大小数据,块设备只能访问固定大小的整块数据(一般为5
2011-10-15 16:31:19
2347
1
转载 解决了/usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found的问题
解决了/usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found的问题(2011-05-01 13:09:09)转载标签: it 嵌入式的确刚刚接触会遇到很多问题,内心也会有挫败感,但是总是一开始不成功,出不来结果,记得有个一师姐对我说,总有一天,这个结果会
2011-10-09 17:18:29
7451
2
转载 MODPOST 1 modules/bin/sh: scripts/mod/modpost: not found的解决
linux 2.6下编译最简单的hello.ko驱动 (2008-05-27 10:08)分类: linux开发﹑内核交叉编译﹑arm移植linux 2.6下编译最简单的hello.ko驱动1.下载kernel源码 http://www.kernel.org/2.配置内核luther@gliethttp:~/work/kernel/lin
2011-10-09 15:17:28
5695
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人