- 浏览: 453098 次
最新评论
-
carlos23:
我想知道用WriterLogger后,里面的writer在外面 ...
论面向组合子程序设计方法 之 燃烧的荆棘 -
marsyoung:
讲的什么。。没看懂。例子太抽象。。
论面向组合子程序设计方法 之 创世纪 -
wanghhao:
优雅的方式!
论面向组合子程序设计方法 之 微步毂纹生 -
ykdsg:
有源码吗?
论面向组合子程序设计方法 之 monad -
咱不怕:
如果在一个函数中多次使用到这个不变temp对象,按照Marti ...
关于 Replace Temp With Query
文章列表
场景一:
个人喜欢state-based的单元测试。(定义见mock is not stub)。
可是有些时候,比如在测试一些使用java.sql.Connection, ibatis SqlMapClient等接口的类的时候,明显写stub很不好。(1,接口很大,有很多不相干的东西。2,版本一旦 ...
最近。age0提出了一个OO设计的问题。因为这个例子更加贴近生活,是我们老百姓所喜闻乐见的商场折扣问题,所以我准备改铉更张用这个例子了。具体的例子请看:
http://forum.iteye.com/viewtopic.php?t=17714&start=0
简要的说,需求是:
引用有这样一家超市,对顾客实行会员制,会员目前分为两个等级:金卡及银卡。
每次会员购物时,都会根据会员等级提供不同的折扣优惠和返点。
这个需求并不复杂。任何一个普通的java程序员都可以轻松搞定。
age0就给出了几个方案供大家选择。
一个大家普遍认可的方案是:
// client:
string id ...
- 2006-01-04 14:42
- 浏览 10666
- 评论(1)
已经有点感觉用ioc container来说明co不见得是个好主意了。
这个container的例子举出来,明显提出意见的人比那个简单的logging例子少了很多。
毕竟连pico是怎么回事,怎么用,很多人都还不见得了了。更不提多少人对pico的用法就是 ...
- 2005-08-21 12:42
- 浏览 7722
- 评论(0)
其实,前面我还忘了提一个非常重要的基本组合子:singleton。
这里补充提一下:
class SingletonComponent implements Component{
private final Component c;
private Object val;
public Class getType();{
return c.getType();;
}
public synchronized Object creat ...
- 2005-08-20 02:10
- 浏览 7954
- 评论(0)
仍然是先用oo把轮廓划出来,我们需要建模一个接口来围绕它进行组合。
因为本文是关于co的论述,那么这个接口怎样分析出来的就暂时忽略掉了:
interface Dependency{
Object getArgument(int i, Class type);;
Class verifyArgument(int i, Class ty ...
- 2005-08-13 07:20
- 浏览 7532
- 评论(2)
迄今,发现典型的几种疑问是:
1。组合子的设计要求正交,要求最基本,这是不是太难达到呢?
2。面对一些现实中更复杂的需求,组合子怎样scale up呢?
其实,这两者都指向一个答案:重构。
要设计一个完全正交,原子到 ...
- 2005-08-12 08:31
- 浏览 9865
- 评论(0)
不少朋友说我的阐述很苍白无力。这让我很苦恼。我确实是拚了命地想把问题说清楚,我也有实际non-trivial的项目经验,怎么就说不明白呢?哎!
所以,还是不能不多罗嗦一下,希望能够再阐述得明白一点。
其实,所谓co,有心的朋友也许能够感觉到,它很象是设计一门语言。
它有顺序/分支,有函数调用,异常处理,基本上一个程序设计语言有的东西它都有了。这些顺序/分支作为语言的基础设施,而一些应对具体需求的原子操作,(比如WriterLogger,比如NeptuneExceptionLogger)则可以看作是语言的扩展或者库。
只不过,c/c++/java是有编译器来把源代码转化成目标代码。而co的 ...
- 2005-08-10 12:39
- 浏览 7901
- 评论(0)
每个小孩刚开始走路的时候都是跌跌撞撞的。
我们不自量力,妄图踩着上帝的步伐前进。结果就是这么几个简单的象白开水似的类。失望吗?是不是造物试图模仿造物主本身就是一种可笑的狂妄呢?
别急,让我们失声痛哭之前 ...
- 2005-08-09 07:21
- 浏览 8511
- 评论(1)
唧唧歪歪一大堆。肯定早有人不耐烦了。
"你丫还有没有点实在的东西呀?"
要是我,可能也早就忍不住了。
好,好。我其实并没有忘记前面说的那个logging的例子。卖了这么长时间的关子,除了有想形而上的虚荣心外,也是想给大家多一点时间来嚼一下这个例子,让熟悉OO的朋友肚子里面多少有个腹稿。
下面,我来继续上回书说到的这个logging。
前面列举了那么一大堆乱七八糟的需求,不知道是不是有人和我一样看着这些繁杂的条目闹心。我在做的时候其实只想了五六条需求,就已经开始烦了。何况还有一些暂时不知道如何抉择的几个疑问点。最初Kiss出来的那个logger实现明显不能用了。refac ...
- 2005-08-09 03:33
- 浏览 10356
- 评论(1)
失乐园发了之后。有的朋友对“OO是一种自顶向下的方法论”的论述有些疑问。
这里补充一下。
如果认可OO是一个责任分配体系,那么自顶向下就是一个自然的逻辑结论。
没有分析出来“需求”,也就无所谓“责任”,于是 ...
- 2005-08-08 01:30
- 浏览 13852
- 评论(0)
发现老庄的连载方法很好.又能吸引眼球又能好整以暇.于是从善如流.
这几天在完善我的neptune系统和jaskell语言。顺手发现了一个logging的需求。如获至宝阿。
为什么呢?不是因为这个需求多么难,或者我的解决方法多么巧妙, ...
- 2005-08-07 16:10
- 浏览 52260
- 评论(1)