@guaiguai
你的东西很多我都认同。
正如你所说得,刨除对于面向对象的执着, 很多思想, 像DDD这些, 本质上的东西还是好的。
所谓的面向接口经常犯这个毛病,应该是一个粒度问题,这些很难把握。
oo本身有局限,比如静态特质
比如一群人排好队,开始报数,这时有人跑过来插到对中,到他的时候,他也会报数。这应该算是aop的东西。
另外对现实抽象的问题。我想有时应该是看问题的角度错误。
比如类似这类:现实中父亲、母亲、儿子
儿子继承父亲、母亲。儿子具有父亲、母亲的特征,这也符合现实。(之所以符合,是因为我们没有去考虑他们之间的可变性),但是却带来了一些问题,比如:儿子不具有女性的特征。
我觉得有一种思想很实用,共性和可变性分析。在共性的基础上进行可变性分析。当可变性导致共性出现缺陷时,应该重新进行共性分析。
@bmrxntfj
那段话我说的比较偏激, 已经重新编辑过了。
粒度的问题只是表象不是核心的问题, 对于接口来说, 粒度小了, 很多时候其繁文缛节就又增加了; 大了, 那帮子专家大师都说的很清楚了。 在这里, 面向接口最大的问题是, 它实质上是想掩饰问题, 所以做起来就必须小心翼翼,注意这个注意那个。
该使用这一手段的时候, 就必须使。 关键是不能把它当成一个指导原则, 而这正是现在所鼓励的。 AOP呢, 则是另外一个补丁; 以前我总觉得这么一个手法, 被上升到一个很高的高度, 似乎不合理; 想到面向接口是一个原则我都相信了好一阵子, 那么AOP被热炒也是应该的。 类似的还有IoC等等。
你说的最后这个问题也是个问题;动态语言要好一些, 但是动态语言没有静态检查, 这个实在是我不能容忍的了. 其实问题还有很多, 只是一时不能全都列出来, 毕竟对于这个“认识其不足”的话题, 对很多人包括我来说才刚刚开始。
我个人认为, 贡献咱们要加分, 不过面向对象想成为软件构建