BT

オブジェクト指向設計の原則と関数型プログラミング

| 作者: Jan Stenberg フォローする 29 人のフォロワー , 翻訳者 猪股 健太郎 フォローする 0 人のフォロワー 投稿日 2014年3月26日. 推定読書時間: 2 分 |

原文(投稿日:2014/03/20)へのリンク

オブジェクト指向プログラミングにはSOLID原則のような十分に確立された設計原則が数多くあるが、関数型プログラミングに移った場合、これまでに身に付けた設計スキルを活かす方法を知らない開発者が多い。Richard Warburtonは最近のプレゼンテーションでそのように述べた
・ 同じ問題についてMark Seemannは最近のブログ記事に書いた。SOLID原則を突き詰めれば、関数型プログラミングがかなり魅力的に見えてくる境地に達するとのことだ。

RichardはロンドンのJCP委員会のメンバーだが、先のプレゼンテーションでSOLID原則を次のように説明している。曰く、オブジェクト指向プログラミングの設計原理の中で十分に確立されているものの一例であり、2000年代初頭にRobert C. Martinに見いだされたものであると。また、そのプレゼンテーションでは、5つの原則のそれぞれについて、関数型プログラミング側における同等のもの、あるいは少なくとも関連性がある何かを見つけようとしている。
Richardの経験談によれば、多くの開発者が、これまでに身に付けた設計スキルを活かして関数型の設計を行う方法を知らないが、関数型プログラミングはSOLID原則を実装する際にしばしば役立つことがあるし、関数型の考え方はオブジェクト指向のある重要な側面、すなわちカプセル化を達成するの=に実際に役立つとのことである。
悶 Richardの結論は、すべてのSOLID原則は関数型において同等のものがあるということである。既存のデザインパターンを捨てる必要はなく、むしろそれらを改善することができる。パターンをさらに単純・純粋なものにしたり、既存知識の活用方法を単純化したりできるからだ。

Markはソフトウェア・アーキテクトでありフリーランスの技術アドバイザーであるが、彼が自身の経験から見出したことは、SOLID原則から導くことができる設計スタイルによって、関数型プログラミングがかなり魅力的なものになるということだ。
SOLID原則のうち、単一責任の原則(SRP)とインターフェイス分離の原則(ISP)の2つを適用すると、単一のメソッドだけを持つ、粒度の細かいインタフェースやクラスがコードベースの中に増えてしまうことになりがちである。
Markの結論は、SOLID原則を繰り返し適用することで、そのような単一のメソッドを持つ小さなクラス群ができてしまうのであれば、その機能はデータを持った振る舞い【訳注:クロージャのこと】としてモデル化することもできるし、その時点でF#のような関数型プログラミング言語に移動する時間なのかもしれないということである。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT