邱俊的空间

Simple is beautiful.
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2009年7月25日

摘要: 前言异步事件的通知机制在比较有规模的软件设计中必然会有涉及,比如GUI程序中的事件监听器,应用程序模块之间的通信,以及分布式应用中的消息机制等。如果使用语言原生的对象注册通信,则耦合度不可避免的会增大,也就是说,当时间发生时,A要通知B,则A必须知道B的存在。耦合度的增大在一定程度上必然会影响灵活性。所以,另一种模式就是今天要说的总线模式(BUS Based),即所有的监听器将自己挂在总线上,这些... 阅读全文

posted @ 2009-07-25 22:19 abruzzi 阅读(2892) 评论(4) 推荐(5) 编辑

2009年6月21日

摘要: 前言事件监听器是经常可以遇到的一种设计模式,一般用在这样一种场景下:当模块的一部分A在完成后需要通知其他的软件模块B,而等待通知的模块B在事先不需要采用轮询的方式来查看另一个模块A是否通知自己。即,当某事件发生,则监听器立刻就知道了该事件。这种模式大量的应用在GUI设计中,比如按钮的点击,状态栏上状态的改变等等。接口的设计我们需要一个对事件(event)的抽象,同样需要一个对监听器(listene... 阅读全文

posted @ 2009-06-21 22:06 abruzzi 阅读(2157) 评论(5) 推荐(2) 编辑

2009年6月6日

摘要: 前言在学校学程序设计语言的时候,能接触到的所有例子没有一个跟现实世界是有关系的。大多是关注于语言的细节层次,根本没有模型的概念,而我认为,要真正的让别人理解模型是如何建立的,最好的方法是从一个实实在在的东西开始,逐步的建立一个与物理世界可以有对应关系的模型出来。那样,在以后的实践中,可以很轻易的对未知的对象进行数学建模。OO最大的特点并非继承,多态等概念,而是与物理世界建立对应的关系!选择有限自动... 阅读全文

posted @ 2009-06-06 10:48 abruzzi 阅读(2460) 评论(21) 推荐(0) 编辑

2009年5月25日

摘要: 前言上一篇《C和指针》可能对关于C和指针的有些内容没有说透,下来写了一个链表的实现,当然,也是用C的函数指针来模拟OO的结构来做的。链表结构本身比较复杂(关于指针的使用方面),所以这个例子可能更清晰一些。之所以选List这个例子来说,是因为大家在学校里肯定接触过这个简单数据结构,从一个比较熟悉的例子入手可能比较容易理解一些。接口定义可以先看看接口的定义,与Java或者C#类似:[代码]接口中定义所... 阅读全文

posted @ 2009-05-25 23:41 abruzzi 阅读(1551) 评论(3) 推荐(0) 编辑

2009年5月21日

摘要: 前言指针是C的灵魂,正是指针使得C存在了这么多年,而且将长期存在下去。事实上,我自己不用C语言写程序已经有一年了,工作中接触到的只有java,python和javascript。最近用C完成了一下类似于OO中的封装(即"类")的概念,顺便把指针复习了下,感觉有必要记一下。本文中的例子有这样两个概念:任务(Task),执行器(Executor)。任务有名称(taskName),并且可以执行(exec... 阅读全文

posted @ 2009-05-21 23:15 abruzzi 阅读(2476) 评论(12) 推荐(0) 编辑

2009年4月18日

摘要: 前言Javascript,有人称其为C+LISP,C只怕是尽人皆知,但是一直活跃在人工智能领域的另一个古老而优美的语言LISP,掌握的恐怕不是很多.这个倒不是因为这个语言太难或者用途不广泛,而是大多数人在接受计算机语言启蒙的时候都走的是图灵机模式,而LISP,做为一种函数式编程语言,是另一个体系:lambda演算体系.这个体系的运算能力跟图灵机的运算能力是相当的。所以Javascript本身是一种... 阅读全文

posted @ 2009-04-18 22:18 abruzzi 阅读(2868) 评论(13) 推荐(0) 编辑

摘要: Hash表这种数据结构在java中是原生的一个集合对象,在实际中用途极广,主要有这么几个特点:访问速度快大小不受限制按键进行索引,没有重复对象用字符串(id:string)检索对象(object)今天整理以前在学校写的一些算法,翻出来一个hash表的实现,就贴出来,自己也温习温习。先看看头文件,也就是数据结构的定义,相当于java中的接口的概念:[代码]然后是具体实现:[代码]很简单,只有两个外部... 阅读全文

posted @ 2009-04-18 17:28 abruzzi 阅读(2940) 评论(1) 推荐(1) 编辑

摘要: 打算写一个系列,比较系统的介绍一下一个脚本引擎的设计和实现过程,本来打算使用lex/yacc来举例子,但是由于最近对java语言有了新的认识,故决定使用javacc这个工具来做,这个系列中就是以javacc中的一个比较复杂的例子来进行解说的。这篇文章是本系列的第一篇,主要说几个概念的定义,有了这些定义,后边就容易理解了。对一个语言的源文件进行解析,主要是做这样几件事:词法分析语法分析语义分析当然,... 阅读全文

posted @ 2009-04-18 14:42 abruzzi 阅读(2159) 评论(3) 推荐(0) 编辑

2008年12月30日

摘要: 作者: abruzzi 链接:http://abruzzi.javaeye.com/blog/266335 发表时间: 2008年11月08日 声明:本文系JavaEye网站发布的原创博客文章,未经作者书面许可,严禁任何网站转载本文,否则必将追究法律责任!用途及用法网络请求通常有两种形式:第一种,请求不是很频繁,而且每次连接后会保持相当一段时间来读数据或者写数据,最后断开,如文件下载,网络流媒体等... 阅读全文

posted @ 2008-12-30 21:08 abruzzi 阅读(437) 评论(0) 推荐(0) 编辑

摘要: 作者: abruzzi 链接:http://abruzzi.javaeye.com/blog/266027 发表时间: 2008年11月12日 声明:本文系JavaEye网站发布的原创博客文章,未经作者书面许可,严禁任何网站转载本文,否则必将追究法律责任!事件监听器模式(一个简单的例子)在GUI程序设计中,在设计时通常不会知道用户的动作什么时候会发生,如用户可能点击某一个按钮,也可能不点击,而且点... 阅读全文

posted @ 2008-12-30 21:08 abruzzi 阅读(327) 评论(0) 推荐(0) 编辑