我不得不先发个牢骚,为什么搞CS的人就这么喜欢发明新名词呢?而且又喜欢用这么常用的单词,以后歧义会越来越多的。
Concept,如果不了解Generic Programming的,肯定不知道它指的是什么。STL引入了Concept,作为了对对象的另外一种划分,在Class之外的另外一种划分。
我现在想,Class,Concept给对象带来了什么?引入了什么?限制了什么?保障了什么?是不是有什么统一分类理论?在OOP, GP, XXXXP之间走一个通用的道路?
不过我可以肯定的一点就是人类发明出来的抽象和分类必须是人类自己能够用好才会推广开来,如果OOP一种维度的分类已经足够了,应该就不会有更多维度的分划了。C++带来的是多范型,但是又几个人能够处理好多种范型带来的多维度问题分析呢?基本的一点是共同性和差异型分析,从这点基本层面出发我们能看到什么?
还有一点是Class和Concept的编译时检查,都可以用Attribute+AOP来完成,这个倒是一个值得玩玩的东西。而且我现在越来越倾向于用Attribute来标记是什么,而不是标记要什么了。