本月博客排行
-
第1名
龙儿筝 -
第2名
lerf -
第3名
fantaxy025025 - johnsmith9th
- xiangjie88
- zysnba
年度博客排行
-
第1名
青否云后端云 -
第2名
宏天软件 -
第3名
gashero - wy_19921005
- vipbooks
- benladeng5225
- e_e
- wallimn
- javashop
- ranbuijj
- fantaxy025025
- jickcai
- gengyun12
- zw7534313
- qepwqnp
- 解宜然
- ssydxa219
- zysnba
- sam123456gz
- sichunli_030
- arpenker
- tanling8334
- gaojingsong
- kaizi1992
- xpenxpen
- 龙儿筝
- jh108020
- wiseboyloves
- ganxueyun
- xyuma
- xiangjie88
- wangchen.ily
- Jameslyy
- luxurioust
- lemonhandsome
- mengjichen
- jbosscn
- zxq_2017
- lzyfn123
- nychen2000
- forestqqqq
- wjianwei666
- ajinn
- zhanjia
- Xeden
- hanbaohong
- java-007
- 喧嚣求静
- mwhgJava
- kingwell.leng
最新文章列表
敲响OO时代的丧钟——DJ对于数据持久化的支持(2)
上一次的关于DJ对于数据持久化的支持,没有写完,匆匆就收笔了,今天接着写。趟混水的事情,有空再做吧。
今天我花了相当长的时间看了ajoo的组合子中的“monad”、“南无阿弥陀佛”和“重构2”。说实话,我还没有完全看明白,但是大概的意思是理解了。利用组合子的方式,提供更加灵活的对象创建手段,这是ajoo希望表达的意思。但是,在我看来,之所以需要这么“灵活到了近乎变态的”对象创建方式——如 ...
敲响OO时代的丧钟——一种新的语言(8)
六、event
event这个概念,可以说是我的DJ语言中,最为核心的概念。因此值得细细道来。我之所以要敲响OO时代的丧钟,最大的一个原因,就是Object是静态封装的。为了“保证数据的安全”,面向对象从“抽象数据类型”一步步发展而来,带来了无数的问题,引发了重重的困难,大多数的对于OO的批评与改进,都很少触及这个根源,也很少想过打破对象封装这样的事情,直到近年来出现的AOP、Mixin以及 ...
敲响OO时代的丧钟——一种新的语言(6)
四、channel与contract
如果我们要对UserChannel进行校验,可以在两个层面进行。
一个是每个方法,都可以写check:与test:。
另一个是在整个channel层面,还可以再写同时牵涉到多个方法的test:。
channel UserChannel<datatype User user>{
public String getUserNa ...
敲响OO时代的丧钟——一种新的语言(5)
三、Channel的定义
关于Channel,我一时找不到好的中文来称呼它。当然,在我思考的时候,我的心里面想的是中文“管道”。但是管道这个词我一直觉得不太好,所以也没有深入想,就直接起个英文名词Channel算了。先看一下Channel是如何定义的。
channel UserChannel<datatype User user>{
public String getU ...
敲响OO时代的丧钟——一种新的语言(3)
与数据类型定义相关的,还有一些小问题,这里再讨论一下。
1、final修饰符
datatype作为校验的依据,其实分为两个部分:是否存在某一特定名称与类型的变量;变量是否符合一组check条件。因此,任何数据,只要能够事实上通过abc类型的校验条件,就可以算作是abc类的数据,并不需要在定义中显式的声明为as abc云云。这个语法设定,并没有考虑到一种特殊条件——满足条件,但是有 ...