Smalltalkの思想を模倣した設計思想
ほとんど全てがオブジェクト
- メソッドもオブジェクト
- クラス定義もオブジェクト
- 詳しく:クラス構造の定義とグローバルオブジェクト化宣言を同時に書いている
- nil(Javaのnull)すらもオブジェクト
全てがオブジェクトだとどうなの?
- 全てが何かのクラスに所属している
- 全てに操作のためのメソッドが存在する
オブジェクトじゃないもの
- 式(メソッド扱いを除く)
- 制御構文
- 定義構文
- シンタックス・シュガー
式?
ほとんど全てがメソッド
- 演算子もメソッド
- 再定義が可能
- ValueObjectの"=="は同値性を保証するのに大活躍
メソッドじゃない演算子
= ?: .. ... ! not && and || or ::
メッセージ・ドリブン
DuckTyping - もしもそれがアヒルのように歩き、アヒルのように鳴くのなら、それはアヒルである
- メッセージ・パッシングした先のオブジェクトが
- 「何のクラスか」が大事なのではない
- 「そのメソッドを持っている/持っていない」が大事
- 持ってなかったらどうなる?
最終更新:2010年01月24日 19:18