自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 java精神 (基于函数式组合子逻辑的java parser框架)

一。 释名。为什么叫精神?如果你熟悉c++,那么你可能知道一个叫做”spirit”的parser库。它利用c++的模板元编程能力,使用c++语言本身提供了一个递归下降文法解析的框架。我这里介绍的jparsec库,就是一个java里面的递归下降文法解析框架。不过,它并非是spirit的java版本。...

2004-12-02 02:12:00 7229 3

原创 再谈树和线性化

前些日子,写了一篇关于二叉树和遍历的文章。原因是看到有些讨论热衷于研究怎么样给一个二叉树的库实现线性的ireator.结果文章出来,因为我本来想让代码说话,而csdn贴代码的功能太差,没人看懂了我的意思。但是,通过在allaboutprogram上和纸鹤兄的讨论,我发现好象这个东西无论如何是值得写...

2003-06-10 12:04:00 4313 0

原创 从二叉树和iterator看代码结构设计 (关于adapter的运用)

前段时间,论坛上几个人很热烈地讨论二叉树里做iterator。还有人专为此给一些C++界的名人写信,俨然很专业的样子。老实说,我当时看了这个论题,感觉有点无聊,为什么?因为二叉树就是二叉树,它的结构就是:左儿子,右儿子,父节点等。iterator的结构是线性的前驱,后继。两者虽然不是风马牛不相及,...

2003-04-08 14:25:00 4066 0

原创 编程语言的最终梦想:静态类型安全

常听人说“强类型”。但个人对强类型都有不同的理解。有的认为C++就是强类型,有的认为C也是强类型。因为它们都有类型检查。可见,如果没有一个明确的定义,谈“强类型”不免是自说自话。 那么,可以给“强类型”下一个什么样的定义呢?最原始的定义是这样: 静态类型系统将检查所有的错误。只要通过了静态类型检查...

2003-01-12 14:31:00 4635 0

原创 面向对象语言概论(四)

 四,彻底划清界限(继续分离Subclassing和Subtyping)在第二节我们讨论了部分分离Subclassing和subtyping的方法,即subclassing-implies-subtyping. 现今的许多面向对象语言,如Java, C#都是采用了这种技术。除此之外,还有一种进一步...

2002-11-02 00:25:00 3922 0

原创 面向对象语言概论(三) 基于类的高级特性

第三章基于类的高级特性 (Advanced Class-Based Features)传统的基于类的面向对象语言的一个主要特点就是inheritance, subclassing和subtyping之间的密不可分的联系。很多的面向对象语言的语法,概念,就是从这三者而来的。比如说,通过subclas...

2002-11-01 23:23:00 3900 0

原创 面向对象语言概论 (一)

面向对象语言概论 (译自Martin Abadi, Luca Cardelli的对象理论一书的第一部分)译者前言这本书是我们上面向对象类型理论的教材。当时上这门课时,心里满不以为然,觉得自己的C++和OO已经颇有造纸,C++和Java的类型系统不说倒背如流,也是轻车熟路,上这么一门课不是白拿学分?...

2002-10-25 16:24:00 4638 0

原创 面向对象语言概论 (二)

4. Subsumption和Dynamic Dispatch (译者按:呵呵,黔驴技穷,找不到合适的翻译了) 从上述的几个例子来看,似乎子类只是用来从父类借用一些定义,以避免重复。但是,当我们考虑到subsumption, 事情就有些不同了。什么是Subsumption呢?请看下面这个例子: v...

2002-10-25 16:24:00 3940 0

原创 refactor遇到死胡同。

郁闷, refactor遇到死胡同。我有一个接口Pool, 如下:public interface Pool{ Worker getWorker();}用来从池中取得一个Worker对象。Worker的接口是:public interface Worker{ public void start(R...

2002-09-08 11:17:00 3735 0

原创 OO随笔(关于connection pool系列的补充,兼答bonmot)

OO随笔(关于connection pool系列的补充,兼答bonmot)说起OO, 每个人都有每个人自己的见解。粗浅者如“obj.method的语法就是OO”;高深的则必侃“design pattern”.今天我也来说说我的一孔之见。什么是OO? 就是面向接口编程。无论你是用vtable, 或g...

2002-08-01 09:14:00 3880 0

原创 从一个ConnectionPool的实现看design pattern的运用 (七)

从一个ConnectionPool的实现看design pattern的运用 (七)这里是bonmot对这个Connection pool的一个意见:pooled Connection可能由于一个client忘记关闭,而导致整个pool阻塞。所以,应该对pooled Connection进行监控,...

2002-08-01 09:13:00 3695 0

原创 从一个ConnectionPool的实现看design pattern的运用 (source code for Java 1.1)

ConnectionPool.java:public interface ConnectionPool{    Connection getConnection()    throws test.res.ResourceNotAvailableException, SQLException;   ...

2002-07-25 09:06:00 3883 0

原创 从一个ConnectionPool的实现看design pattern的运用 (六)

从一个ConnectionPool的实现看design pattern的运用 (六)要对不同资源重用pooling的算法?先让我们再从头审视一下我们ConnectionPool的实现。1。 Pooling算法由ConnectionMan来实现。它需要委托ConnectionFactory来具体创建...

2002-07-25 09:05:00 3609 0

原创 从一个ConnectionPool的实现看design pattern的运用 (续六)

 这种ResourcesCollector的方法也有一点美中不足的地方,那就是,我们把我们在ResourceManImpl中使用java.util.Collection的实现细节暴露给了ResourcesCollection。如果一个ResourceMan的实现者不想用Collection,那就不...

2002-07-23 09:03:00 3667 0

原创 从一个ConnectionPool的实现看design pattern的运用 (一)

 从一个ConnectionPool的实现看design pattern的运用 (一) 什么是ConnectionPool? 我们知道,JDBC提供了java.sql.Connection interface, 供我们连接不同的数据源。但是,因为与数据库建立连接是一个很大的开销,所以,我们可以把已...

2002-07-22 10:26:00 4045 0

原创 从一个ConnectionPool的实现看design pattern的运用 (二)

 从一个ConnectionPool的实现看design pattern的运用 (二)好啦,现在让我们看看我们是怎样设计这个ConnectionPool的接口的。Public interface ConnectionPool{            Connection getConnection...

2002-07-22 10:26:00 3726 0

原创 从一个ConnectionPool的实现看design pattern的运用 (三)

 从一个ConnectionPool的实现看design pattern的运用 (三)根据上回对PooledConnection的分析,下面是对一个可重用PooledConnection的实现: public class PooledConnection implements Connection...

2002-07-22 10:25:00 3556 0

原创 从一个ConnectionPool的实现看design pattern的运用 (四)

 从一个ConnectionPool的实现看design pattern的运用 (四)好了,同学们,大家对上回的“李四猜想”有没有结果呀? 我们的口号是?。。。。。。“没有蛀牙”! No! 是“用户至上”! 既然用户有容易忘的可能,那就证明我们的工作做得不好。我们为什么非要用户做他们做不好或容易弄...

2002-07-22 10:24:00 3621 0

原创 从一个ConnectionPool的实现看design pattern的运用 (五)

从一个ConnectionPool的实现看design pattern的运用 (五)OK, 现在我们已经把封装Connection的任务从ConnectionPool的开发者身上去掉了。他们只要实现一个辅助的ConnectionMan 接口,余下的事由PooledConnection类和Conn...

2002-07-22 10:06:00 3722 0

原创 从C++的Return Value Optimization (RVO)到C#的value type

 从C++的Return Value Optimization (RVO)到C#的value type 先看一段简单的C++代码:Type get(int I){               return Type(i);}Type t = get(1); 这里, 我们从C++的基本语义看上去, ...

2002-06-24 09:32:00 4273 0

提示
确定要删除当前文章?
取消 删除