摘要: 组合模式定义:Compose objects into tree structures to represent part-whole hierarchies. Composite lets clients treat individual objects and compositions of objects uniformly.将对象组合成树形结构以表示“部分-整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性。 如上图所示 阅读全文
posted @ 2013-01-06 10:11 叶梅树 阅读(2789) 评论(0) 推荐(0) 编辑
摘要: 观察者模式定义:Define a one-to-many dependency between objects so that when one object changes state, all its dependents aer notified and updated automatically.定义对象间一种一对多的依赖关系,使得当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新。 如上图所示 阅读全文
posted @ 2013-01-05 12:11 叶梅树 阅读(1828) 评论(0) 推荐(0) 编辑
摘要: 单例模式定义:Ensure a class has only one instance, and provide a global point of access to it.动态确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。 如上图所示(截取自《Head First Design Patterns》一书)。通过使用private的构造函数确保了在一个应用中产生一个实例,并且是自行实例化(在Singleton中自己使用new Singleton())。二、单例模式优势由于单例模式在内存 阅读全文
posted @ 2013-01-04 10:08 叶梅树 阅读(8180) 评论(4) 推荐(0) 编辑
摘要: 装饰模式定义:Attach additional responsibilities to an object dynamically keeping the same interface. Decoators provide a flexible alternative to subclassing for extending functionality.动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类更为灵活。 如上图所示(截取自《Head First Design Patterns 阅读全文
posted @ 2012-12-30 00:49 叶梅树 阅读(4613) 评论(7) 推荐(3) 编辑
摘要: 我觉得学习一个新的API,最好的办法是学习它提供的Samples。今天根据自己的了解,分享我自己对新的NITE 2的了解,首先看看NITE2 中提供的UserViewer,将它提供的工程文件夹导入到VS2010中,运行,直接看运行结果: 当人体出现在Kinect面前时,就能获取身体深度图像,当做出POSE_CROSSED_HANDS(“双手抱胸”)的动作时,就开始骨骼跟踪,最多获取全身15个主要关节点坐标的3D信息。现在开始代码的了解。首先看主函数main():#include "Viewer.h"int main(int argc, char** argv){ openn 阅读全文
posted @ 2012-12-29 10:27 叶梅树 阅读(4139) 评论(6) 推荐(0) 编辑
摘要: 我觉得学习一个新的API,最好的办法是学习它提供的Samples。今天根据自己的了解,分享我自己对新的NITE 2的了解,首先看看NITE2 中提供的HandViewer,将它提供的工程文件夹导入到VS2010中,运行,直接看运行结果: 当一只手做出“向前推”或者“左右摇摆”时,就能获取手心坐标,并进行跟踪,其它手做相同的动作也能识别并跟踪。现在开始代码的了解。首先看主函数main() 阅读全文
posted @ 2012-12-28 12:29 叶梅树 阅读(4100) 评论(4) 推荐(2) 编辑
摘要: 通过Android源码学习之浅析SystemServer脉络知道了SystemServer是怎么通过利用JNI,但相继的问题出现了:SystemServer是干嘛用的?本人从《深入理解Android 卷2》截取摘录这一问题的回答: SystemServer是什么?它是Android Java的两大支柱之一。另外一个支柱是专门负责孵化Java进程的Zygote。这两大支柱倒了一个,都会导致Android Java的崩溃(所有由Zygote孵化的Java进程都会被销毁,而SystemServer就是由Zygote孵化而来)。若Android Java真的崩溃了,则Linux系统中的进程init会 阅读全文
posted @ 2012-12-26 18:37 叶梅树 阅读(6307) 评论(0) 推荐(1) 编辑
摘要: 在之前的博文中《Android源码学习之如何创建使用JNI》和《Android源码学习之如何使用eclipse+NDK》中,浅谈了如何创建使用JNI和如何利用NDK工具开发创建和lib**.so(Windows下)库和调用Naive函数,做了这些工作只有一个目的,就是因为Android源码中“大量”的使用到Native,所以了解一些Native语言和Java如何与Native互通,对分析Android源码还是有很大的帮助的(好像废话很多~~~)。本人通过对SystemServer源码进行浅析,看它是如何设计的。 首先利用Source Insight工具搜索到SystemServer.java. 阅读全文
posted @ 2012-12-26 09:30 叶梅树 阅读(5041) 评论(0) 推荐(1) 编辑
摘要: 对于新的东西总是很有激情,昨天安装了最新版的OpenNI 2 SDK,发现很多东西跟之前的不太一样了,今天根据OpenNI 2自带的程序捯饬捯饬,初看怎么使用,废话不多说,直接上图说话。 1. 创建新的C++控制台项目MyMyOpenNI2SimpleView,具体省去; 2. 首先跟使用传统的OpenCV等类似,都需要进行配置,右键点击项目,选择属性窗口,选择VC++目录,在右边包含目录中输入需要载录库的include文件夹,其中包括OPenNI2的include文件夹和需要用到的GL文件夹; 阅读全文
posted @ 2012-12-25 11:11 叶梅树 阅读(17130) 评论(5) 推荐(2) 编辑
摘要: 在OpenNI 1.X的时候,OpenNI的整个framework是采用类似plug-in的机制,让开发者可以利用OpenNI所提供的标准框架,使用中间件(Middleware)提供的人体跟踪技术、手部跟踪等功能,不过在OPenNI 2 SDK的时候,为了简化架构、增加开发的弹性,所以把这个架构移除了,现在的整个框架如下图所示(截取于OpenNI官网): 上图中绿色部分就是OpenNI 2所提供的功能,但中间件已经和之前的版本大不相同了,具体可以參考官方的 阅读全文
posted @ 2012-12-24 20:25 叶梅树 阅读(7717) 评论(8) 推荐(3) 编辑