CLOS : Common Lisp 的面向对象支持

1.  defclass   ( :accessor/reader/writer ;   :initarg  ;  :initform

2. defgeneric

3. defmethod

--------------

1. 多重继承时的优先级(类似Ruby中的Ancestor Chain)

2. 面向对象的两种模型: 

    ①  obj. method (args)   ——  Java,C++

    ②  obj.send (method, args)   === send (obj , method ,args)  —— Ruby对此支持

    ③   method (obj, args) ———— 广义函数,Lisp和Haskell都是这种 。 Lisp可以把特化到多个类型

3. 面向切面AOP支持  

     :before  :after   :around

4. 组合机制( combination )

    ???  支持多个组合符,可以把所有主方法的结果组合起来

    call-next-method : 相当于super

5. 支持 singleton-method (Ruby术语), 即:只为一个特定的instance定义方法。


包机制(package)

和 Haskell的包机制非常相似。

可以控制只导入外部包中的某些符号、只导出本包中的某些符号;

如何处理不同包内的命名冲突 (Haskell 用 as )

 

posted on 2018-09-19 01:36  王家恒  阅读(352)  评论(0编辑  收藏  举报

导航