BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース オブジェクト指向プログラミング:より良いデザインのために動詞・名詞のメタファーを超えて考える

オブジェクト指向プログラミング:より良いデザインのために動詞・名詞のメタファーを超えて考える

オブジェクト指向のプログラミングを描写するために、オブジェクトは良く”名詞”、またそのビヘイビアを”動詞”として考慮するアクションとして表現され る。これらの動詞は従来的にメソッドとして実装されており、例えばアクションを”実行する”オブジェクトにシステマチックに結合する。最近のブログ掲載の中でReg Braithwaite氏(サイト・英語)は”動詞の定義を所有するべき[…] アクティブなエンティティと二つ目の動詞の定義を所有するべきではない受身のサブジェクトエンティティ間で、明確な違いが必ずしもあるわけではない(source)"ことを指摘している。これは例えば交換可能な動作に適応し、またBraithwaiteはそのケースにおいて、動詞をオブジェクトにリンクすると”コードの重複と情報の漏出”に繋がると示している。同氏はそれが名詞から動詞を引き離し、アブストラクションを後者のレベルに上げるということを論議している。

多分動詞はいくつかオブジェクトに帰属しているが、いくつかはそれ単体でベストなのだろうか?多分 + and <=> and equivalent?はその従属物からオブジェクトに解放され、それ自体独自の定義を所有するべきなのだろうか。

Buko Obele氏(ブログ・英語)はverb/nounメタファーの有効性に挑戦している(source)。同氏は本物の動詞と名詞とは違いオブジェクトとメソッドは互いから独立して存在することはできないことを論じている。

文章中にある”person”という言葉はある特定の動詞[…]の概念に依存していない。実際に私たちは例えば走れない人は人[…]ではないと絶対に言わないだろう。オブジェクト指向のデザイン内ではコンセプトが別々にそれらのメソッドから分離して存在することはないのである。代わりに全体的な要点はそのメソッドによって厳格に構成されているのだ。

更に実際の言語内でメタファーの使用は”全く新たなコンセプトを作り出すのに”、”サブジェクトと動詞と他の純粋な文章論的な懸念”を混同するのを可能に し、これが”並外れてクリエイティブな言語の力”を作り出すものなのである。プログラミング内ではメタファーは存在しない。それゆえにオブジェクトは”ソ リューションを問題に伝達するために”他の概念と統合されるべき非常に制限された概念以外のものでも何でもないということなのである。

Buko Obele氏は動詞と名詞のビジョンを超えて考えるべきであることを論じているが、結果的に彼とBraithwaite氏の結論はオブジェクト指向のプログ ラミングへの従来的なアプローチを問うた同じライン状に存在しているのである。Braithwaite氏がどのようにして動詞を名詞から分離させるのかという見解を提供している一方、Obele氏は”オブジェクトか機能かDSLかもしくはGreat Lispで作業するかどうか”不可欠であると判断したソフトウェアデザインに焦点を当てることを主張している。

動詞が誰に属しているかという疑問は必ず間違っているのです。その代わりに新たな概念がどのように今存在しているシステムに導入するかということが大切なのです。

[…]

動詞、名詞に関する話題は出発点として実用的ですが、結果的には良く考えて抽象的なカンフースキルを重要なシステムを描写させる必要が出てくるだろう。

原文はこちらです:http://www.infoq.com/news/2007/11/oop-beyond-verb-noun

この記事に星をつける

おすすめ度
スタイル

BT