Eyes, JAPAN Blog > パターン指向開発

パターン指向開発

yahata

この記事は1年以上前に書かれたもので、内容が古い可能性がありますのでご注意ください。

こんにちはこんばんは、アルバイトスタッフの八幡です。

最近ソフトウェア開発の「パターン」というものに興味を持って少し調べています。
ところで、パターンとはなんぞや?

普段ソフトウェアを開発するにあたって、何度もぶちあたるような問題があると思います。
例えば「データベースをHTML形式で出力してたけど、新しくPDFで出力する機能もつけたい!」とか
「メソッドAとメソッドBは似てるから一つのメソッドにまとめたい!」とか。

そういった、よく現れる問題への対策に名前をつけてまとめたものをパターンと言います。
有名どこではGoFのデザインパターンのObserverパターンとかSingletonパターンとかがあります。

パターンを利用するメリットは色々あって、
1. 問題への対応が速くなる
2. 可読性の向上
3. 開発者同士のコミュニケーションの円滑化
などが挙げられます。

簡単にデメリットも添えて説明していくと、

1. 問題への対応が速くなる
パターンを適用しながら開発を進めていれば、途中で何か問題が現れても
非常に簡単に対応することができます。それがパターンというものです。
野球で言うとバントみたいなものです。問題が飛んでくる前からそこに対策を置いておきます。
ただし、対策を講じておいたのに問題が起こらなかった場合には
ただ長いだけの冗長なコードができてあがってしまうので、パターンの使い過ぎには注意です。

2. 可読性の向上
「パターン」という名前からも分かる通り、
同じパターンを適用したコードは同じ見た目をしています。
なのでコードを読む際にそこを意識して読めば、より理解が深まるでしょう。
ただし、パターンを知らない人には当たり前ですが効果がありません。

3. 開発者同士のコミュニケーションの円滑化
「パターンには名前がついている」っていうのは非常に重要なポイントです。
パターンさえあれば、他の開発者になにか機能の実装を頼むときに
「あの、ほら、ここのabstractクラスでさ、今は○○クラスのインスタンスを生成してるじゃん?でもやっぱりコンクリートクラスの方にある程度自由度を持たせたいわけよ。だからね、このabstractクラスではインスタンスを生成しないで、コンクリートクラスの方で××インタフェースを実装したクラスを生成することにしようと思うんだ。わかった?」
なんて言う必要は無くなって、
「FactoryMethodパターンでヨロシク」
で済むようになります。
ただし、これもパターンを知らない人には通じないので、共通理解が必要です。

以上、パターンに関するメリット・デメリットでした。
興味を持った方は、色々と調べてみるといいかと思います。

担当: 八幡

Comments are closed.