オブジェクト指向は愚かな考え。排便メソッドを実装した人間クラスから美少女クラスが作れない。
オブジェクト指向は愚かな考え。排便メソッドを実装した人間クラスから美少女クラスが作れないとは、オブジェクト指向の設計の難しさを表現したものである。
目次
概要
2001年に始まり今なお続く「石川梨華ってウンコするの?」という大論争をオブジェクト指向で設計するとどうなるのかという問題である。 下品な例だが納期が迫った時期に顧客の要望による大幅な仕様変更、それに耐えうる設計見積を作れるか、という非常に根の深い問題である。 ベストな答えはまだ得られていない。
主な見解
排便メソッドをオーバーライド
排便メソッドをオーバーライドし黄金やnullを返すようにするという意見である。
美少女には排便自体が存在してはならない、という意見があり根本的な解決には至っていない。
仕様が間違ってる
美少女でもウンコはするものであり、そもそも仕様が間違ってるという意見である。顧客との直取引であれば「フルスクラッチからの作り直しになる」と説明し、高額な見積を提示することで回避すればいいと言う。
だが、顧客の要求仕様は絶対であり、ましてや孫請けや曾孫受けのさらに派遣社員、いわゆるITドカタに拒否する権限などないという反論意見がある。彼らは黒いモノも白いと言わなければならない。
- 顧客「美少女はウンコしないよ」
- 元請「美少女はウンコしないらしいぞ」
- 下請「美少女はウンコしないことにします」
- 孫請「…」
- 派遣「」
これがデスマーチの始まりだ。
美少女クラスは天使クラスからの派生
美少女クラスは人間クラスではなく天使クラスからの派生であるという意見である。
だが、美少女も時間経過により人間クラスを基底とするババアになり排便を行うという反論意見がある。 そのような意見に付随し、あくまでも「見せかけ」だけ排便を消すのが得策ではないかと意見もある。
排便はメソッドではない
一般的に排便は他人から施されるものではない。 よって以下のような設計になるのではないかという意見である。
排泄イベント
前述の排便イベントでは「排便」が残るという問題を残している。 そこで排便イベントではなく、もっと抽象化した排泄イベントにし、そのイベント引数として排泄物オブジェクトを用意し、そこで「どこから」「なにを」を決めるという案である。
主な排泄物オブジェクトの「なにをプロパティ」
- 唾液
- 汗
- 尿
- 便
かなり正解に近いと思われる。
ただし理論上は正解に近くても、プログラミング言語の機能としてイベントやクロージャを持たないものでは、Observerパターンなどを駆使して無駄に壮大なソースコードを記述しなければならないという技術面およびメンテナンス性の問題を抱えている。
ただし、排便がイベントでは便意を我慢することが出来ないのでないか、という反論意見もある。
2chに立てたスレ
ひとりで考えても考えてもベストな答えが見つからないので2chにスレを立てまくってみた。 だが、今なお的確な答えは得られていない。
- オブジェクト指向は愚かな考え。 - プログラム板
- オブジェクト指向は愚かな考え。排便メソッドを実装した人間クラスから美少女クラスが作れない。 - ニュース速報板
- オブジェクト指向は愚かな考え。排便メソッドを実装した人間クラスから美少女クラスが作れない。 - ニュー速(嫌儲)板