一个Java程序的执行要经过编译和执行(解释)这两个步骤,同时Java又是面向对象的编程语言。当子类和父类存在同一个方法,子类重写了父类的方法,程序在运行时调用方法是调用父类的方法还是子类的重写方法呢,这应该是我们在初学Java时遇到的问题。这里首先我们将确定这种调用何种方法实现或者变量的操作叫做绑定。
继续阅读 »
阅读openNi的个人小结
more
![我的类图][image-1]
流程图概览
大致概览上来说,整个项目的结构是一个标准的中间件结构,上下层分别面向开发者和驱动层,所以圆框内的我略过,用了相对稳定和结实的散在C_API口,为了应对不同人群的胃口,打散了这些功能口的面向对象特性以后又多做了几层封装来包装这些接口;
1是为上下层的书写提供了一个标准和文档注释的说明整理地方
2是为上下层的用户提供了更多的选择和设计可能
3原本的设计用意是散在接口的上下层做库的包装,以上或者以下均可见,驱动层的架构的驱动仅仅是为接口的统一规格实现设计的中间件。如果涉及到加密,我认为主要的openNi实现库实行即可。
同时项目具备良好的跨平台性
继续阅读 »
设计模式
对软件设计中普遍存在(反复出现)的各种问题,所提出的解决方案。面向对象设计模式来描述其中的关系和相互作用,但不涉及用来完成应用程序的特定类别或对象。设计模式能使不稳定依赖于相对稳定、具体依赖于相对抽象,避免会引起麻烦的紧耦合,以增强软件设计面对并适应变化的能力。
more
设计模式主要分类
设计模式可按作用及范围进行分类,
- 按设计模式的作用
- 创建型
- 结构型
- 行为型
- 按范围划分
- 类
- 对象
创建型模式
模式名|范围|描述
--|--|--
抽象工厂|类|为一个产品族提供统一的创建接口,当需要这个产品族的某一系列的时候,可以从抽象工厂中选出相应的系列创及那一
继续阅读 »
在过去,内存泄漏并没有为 Web 开发人员带来巨大的问题。页面保持着相对简单,并且在页面之间的跳转时可以释放内存资源,即便还存在内存泄露,那也是小到可以被忽略。
现在,新的 Web 应用达到更高的水准,页面可能运行数小时而不跳转,通过 Web 服务动态检索和更新页面。JavaScript 语言特性也被发挥到极致,通过复杂的事件绑定、面向对象和闭包等特性构成了整个 Web 应用。面对这些变化,内存泄露问题变得越来越突出,尤其是之前那些通过刷新(导航)隐藏的内存泄露问题。
庆幸的是,如果你知道如何排查问题,内存泄露可以很轻易地被清除。即便是面对一些最麻烦的问题,如果你知道解决方案,也只需要少量的工作。虽然页面仍可能存在一些小的内存泄
继续阅读 »
本文译自 Dmitry A. Soshnikov 的文章 ECMA-262-3 in detail. Chapter 3. This.
翻译过程参考了现有的中文翻译,学习 ECMAScript 是一个非常抽象的过程,因为很多概念都是通过抽象的方式来解释的,作者尝试尽量用一些简单的方式并使用了一些具体图表,来使我们的学习曲线稍微平稳一点。
概述
本文将讨论和执行上下文密切相关的更多细节 - this 关键字。
实践证明,这个主题很难,在不同的执行上下文中确定 this 的值经常会发生问题。
许多程序员习惯性地讲 this 和面向对象编程密切联系在一起,this 指向了构造函数中新创建的对象。在 ECMAScript 中,这样
继续阅读 »
原文地址:[PHP设计模式(六):MVC][1]
Introduction
20世纪80年代,计算机发展迅速,编程技术也日益分化。桌面应用编程,也逐渐出现了用户图形界面和程序逻辑分离的程序设计。到了90年代,web的出现更是让这种程序设计模式得以延续。
这种设计模式便是MVC(Model-View-Control),除了MVC,还有MVC的变种,如MVVM(Model-View-View-Model)等。
MVC
回到80年代的桌面应用编程,当时面向对象的编程设计模式(见PHP设计模式(一):基础编程模式)兴起,程序员将桌面应用分割成两个大的对象:领域对象(domain objects)和可视对象(presentatio
继续阅读 »
goto语句一直被人所诟病,说它使得代码结构复杂化,但是语言设计者们还是没有放弃goto这个功能强大的语句。Java以面向对象所著称也没能够放弃goto,而是把它当做保留字,但是并未在语言中得到正式使用。
然而,从Java的break和continue这两个关键字的身上,我们依然能够看出一些goto的影子。
下面是《Thinking In Java 4th》中关于“goto”的介绍:
臭名昭著的“goto”
goto 关键字很早就在程序设计语言中出现。事实上,goto 是汇编语言的程序控制结构的始祖:“若条件A,则跳到这里;否则跳到那里”。若阅读由几乎所有编译器生成的汇编代码,就会发现程序控制里包含了许多
跳转。然而,got
继续阅读 »
原文连接:Intro to Aspect Oriented Programming
本文简单地介绍了 AOP 的原理,以及 AOP 与其他方式的异同,并没有涉及太多的复杂逻辑,另外推荐下面两篇文章,这些文章中都间接或直接提及了 AOP:
用 AOP 改善 JavaScript 代码
使用 JavaScript 拦截和跟踪浏览器中的 HTTP 请求
面向切面编程(AOP)是一种非侵入式扩充对象、方法和函数行为的技术。通过 AOP 可以从“外部”去增加一些行为,进而合并既有行为或修改既有行为。
虽然有很多技术可以用来增加和合并行为,例如继承、组合、委托,然而,在很多情况下,AOP 被证明是更灵活和更少侵入的方式,非常值得将其纳入我
继续阅读 »
前言
上一篇文章Java 注解介绍讲解了下Java注解的基本使用方式,并且通过自定义注解实现了一个简单的测试工具;本篇文章将介绍如何使用Spring Boot的AOP来简化处理自定义注解,并将通过实现一个简单的方法执行时间统计工具为样例来讲解这些内容。
AOP概念
面向侧面的程序设计(aspect-oriented programming,AOP,又译作面向方面的程序设计、观点导向编程、剖面导向程序设计)是计算机科学中的一个术语,指一种程序设计范型。该范型以一种称为侧面(aspect,又译作方面)的语言构造为基础,侧面是一种新的模块化机制,用来描述分散在对象、类或函数中的横切关注点(crosscutting concern)。
继续阅读 »