- ベストアンサー
「design patterns」 って使いますか?
仕事でJava、C++を使われる方に質問です。 実務でプログラミングをするときに、Design Patterns(Factory,Visitor等)を使ったりしますか? 私は、Java,C++を一通り勉強し、ようやくオブジェクト指向プログラミングの概念、奥深さを理解出来てきたところです。 先日、Design Patternsに関する本を見つけたのですが、面白いと思う反面、実際にどのような場面で使われるのかが今一つ理解出来ません。 私が大きいプロジェクトのプログラミングを経験したことがないせいなのかとも思うのですが、実務でも使ったり、職場で話題になったりするのでしょうか? また、ここからプログラマーとしてもう一つ上のレベルに行くためにはどのような書物で勉強するのが良いのでしょうか? アドバイス、コメント等、お願い致します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
今まで携わってきた開発の中では、デザインパターンは頻繁に使用されています。ただし、デザインパターンを無理に使用するのではなく、そのシステムごとにアレンジしていくつかのパターンを組み合わせて使用するのが一般的です。 開発はデザインパターンを使用しなくても可能です。ただ、再利用性や保守性をあげるためには、デザインパターンは効果的です。 開発者同士の会話でも、ここにはシングルトンを使用して…などと、パターン名でどんな処理を行おうとしているのか簡単に理解することができます。(相手もある程度デザインパターンを知っている必要があります) Java、C++でオブジェクト指向の概念などがわかってきたということですが、もし実際に開発をされていないのであれば、何か実際に作成してみることをおすすめします。 最初からデザインパターンをすべて覚えるのではなく、実際にプログラムを作って、後からデザインパターンを適用できそうな箇所を探してみるのもいい方法かもしれません。(実際の開発では、そんなことをする時間は取れないのが普通です) そうすることで、デザインパターンを使った場合と使わない場合の保守性の問題や、利点などがより深く理解できると思います。
その他の回答 (2)
使います。 良く使われるのは#1さんも挙げられたcompositやsingleton。それとstateパターンなどもどこでも使われていると思います。 何冊かデザインパターンの本を読みましたが、どの本も始めにパターンありきで、使用例はピンと来ないものが多いのは同感です。 1.xxxxがしたい そういうときはxxxxパターンを使いましょう。xxxxパターンとは・・・・。 ソースの例は・・・・。 なんて構成の「逆引きデザインパターン辞典」みたいなのをどこかで出版してくれないかなぁ。
- goldchildren
- ベストアンサー率62% (10/16)
こんにちは。プログラマー1年生のものです。 私自身あるパターンが使えると考えてプログラミングしたことがありませんが,今携わっているWebシステムの機能で一部デザインパターンを使用して作成しているものがあります。それは組織やグループなどの階層構造を表示するServletにCompositeパターンが使われていますし,インスタンスの生成を制限するクラスにSingletonパターンなどが実際使用されています。 いろいろな考え方があると思いますが,一度どちらの言語かで構わないと思うので一読されてみると面白いと思います。