- 601 名前:デフォルトの名無しさん mailto:sage [2016/06/05(日) 14:08:56.97 ID:fuiY39en.net]
- >>582
Dog.Walk(5) オブジェクト指向言語 Walk(Dog,5) C、関数型 オブジェクト指向信者は Dog.Walk(5)のほうがシンタックス的にいけていると言うのだ これがもしFightという関数になったとき Dog.Fight(Cat); Cat.Fight(Dog); Fight(Dog,Cat); これでいいたいことはうっすらわかりましたかね? WalkのコンテクストではDogを主語として扱うことに意味はあるのかもしれない。 しかしFightのコンテクストではDogあるいはCatを主語として扱うことに対する深い意味はないだろう。 言うなれば、主語を要しない文脈においても、主語を必要とする。 これを回避する方法はクラス・メソッドを使うという方法だ、 しかしそれは結局のところオブジェクト指向を殺している、 オブジェクト指向信者がバカにしているstaticおじさんの手法に過ぎない こんな単純なことすら穏便に解決できず、議論になりうる言語で一体何を設計しろと? 俺らは間違いなく Walk(animal,length)という関数を設計しFight(animal,animal)という関数を設計する さらに言えばFight(animal,animal.animal,・・・)といった可変長引数の関数を設計する そちらのほうが汎用性が高いのは自明だからだ >>584 Cのライブラリをテストするのとオブジェクト指向ライブラリをテストするのでは大きく違うだろ Cは所詮プリミティブを基本としているからこそ、簡単に関数の挙動をテストできるのに対して Javaはオブジェクトを基本にしているからこそ、わざわざモックオブジェクトを定義してやって 食わせてやらないと、簡単に構文エラーをはくだろ さらに言えばオブジェクトがカプセル化している状態(state)によっても、結果が異なる 聞きたいんだけど、オブジェクトという副作用の塊で何をどれだけテストするの?
|

|