2010/02/03

allocate-instance と class-prototype

Common Lisp でのクラスメソッド にかんして Jianshi Huang さんに allocate-instance を使うというのを教えてもらった。ありがとうございます。

make-instance を使うと、initialize-instance :after あるいは shared-initialize が呼ばされるので、よくない気がします。 (allocate-instance (find-class 'foo)) を使った方がいいと思います。

そういえば class-prototype なんてのもあった。 http://www.gigamonkeys.com/book/object-reorientation-classes.html には次のように書かれていた。

class-prototype, that returns an instance of a class that can be used to access class slots.

そうか :allocation :class したスロットについても一緒に考えなきゃいけないんだ。

0 件のコメント: