- PR -

よく利用するデザインパターンは?

投稿者投稿内容
ニシトミ
ベテラン
会議室デビュー日: 2003/04/24
投稿数: 76
お住まい・勤務地: 千葉・東京
投稿日時: 2003-08-27 16:33
ちょっとネタがずれるかもしれませんが
J2EEパターンとか利用してますか?

ServiceToWorkerというパターンがあるのですが、
適用したときは、一つのフレームワークが
できてしまったみたいな錯覚になりました。

ほかのJ2EEパターンは良く知らないのですが
結局は、ファクトリーであったり、ストラテジィが基本に
なっていたりするのでしょうね

あとMVCこれははずせないですね
Micky
大ベテラン
会議室デビュー日: 2002/09/04
投稿数: 137
投稿日時: 2003-08-27 17:27
普段は.NET会議室の方で勉強させてもらっている
Mickyといいます。

最初にデザインパターンを勉強したときは、
「なんでもっと早く勉強しなかったんだろう」と思いました。
自分のイメージとしては、
「なんだ、オブジェクト指向ってデザインパターンの為にあるんじゃん!?」
と思ったくらいでした

よく使うのはやはり、Singlton、AbstractFactoryあたりでしょうか、
ObserverやProxyなんかは適用場面が結構あるのではないでしょうか?
(実際無意識に使っていたり…)

あるまとまった処理を設計したい場合、デザインパターンカタログと
にらめっこします。どれか使えないかなぁ〜〜って…
そのまま当てはまらなくても、それをベースに自分なりにアレンジした
形で使えたりして、オブジェクト指向の恩恵に預かっております。

いつも.NETの方がメインなのでオブジェクト指向や、デザインパターンの
話題は言語とは独立させて欲しいな・・・
未記入
ぬし
会議室デビュー日: 2002/03/28
投稿数: 255
投稿日時: 2003-08-27 20:20
>自分のイメージとしては、
>「なんだ、オブジェクト指向ってデザインパターンの為にあるんじゃん!?」
>と思ったくらいでした
ほぼ同感.デザインパターンを知らずして,オブジェクト指向を
分かったつもりになっちゃいけません.

ちなみにGoF本が出たのが,たしか1995年くらい.

それ以前の人は口コミで教えてもらうか,
我流でもがきあがくかしかありませんでした.
#私はもちろん後者.
こくぼ
大ベテラン
会議室デビュー日: 2003/08/11
投稿数: 229
お住まい・勤務地: 国境の南、太陽の西。
投稿日時: 2003-08-28 00:27
>自分のイメージとしては、
>「なんだ、オブジェクト指向ってデザインパターンの為にあるんじゃん!?」
>と思ったくらいでした

オブジェクト指向『プログラミング』 - > デザインパターン (実装モデリング)
オブジェクト指向『モデリング』 - > アナリシスパターン (概念モデリング)

こういう考えもできると思います。

>それ以前の人は口コミで教えてもらうか,
>我流でもがきあがくかしかありませんでした.

ぼくは今「Java言語で学ぶ デザインパターン入門結城浩著」で勉強しています。良い本だと思います。

>あとMVCこれははずせないですね

デザインパターン、フレームワーク、アーキテクチャ…。色々と話の視点によって用語が変わってしまうような気がします。

>デザインパターンにとらわれず、インターフェースと実装を分離させることに注力して設計す>ると、必然とよいものになっていくでしょう。

デザインパターン + 自分なりの設計哲学が必要ということですね。(なるほどなるほどρ(・・))

C言語からJavaに移ったばかりのころは、Iteratorの使い方がまったくわからず苦労しましたけど、パターンとして勉強してみると、思わず「へぇ〜」と思ってしまいました。
ToGo
常連さん
会議室デビュー日: 2002/03/16
投稿数: 46
投稿日時: 2003-08-28 02:50
引用:

maruさんの書き込み (2003-08-27 10:44) より:
ちなみに、「オブジェクト指向で設計する上での設計指針・哲学」みたいなものを説明して
いる書籍や記事は、どなたかご存知ありませんでしょうか?


ピアソンから出ている「プログラマのためのJava設計ベストプラクティス」の1章に
ちょこっとだけOpen Closed PrincipleやLiskov Substitution Principleなどの解説が
載っています。
Anthyhime
ぬし
会議室デビュー日: 2002/09/10
投稿数: 437
投稿日時: 2003-08-28 06:26
みなさんStrategy使えといっておられますが、動的なアルゴリズム切り替えってそんなに必要ですか?動的に切り替えないのであれば、TemplateMethodやInterfaceを利用すべきだと私は思うのですが。逆にStrategy使って動的なアルゴリズム切り替えをしないといけないような要件はゲームくらいしか思いつきません。なにかほかにあるのでしょうか?
米山@クロノス
大ベテラン
会議室デビュー日: 2003/06/10
投稿数: 103
お住まい・勤務地: 大阪市淀川区西中島4-13-22 新大阪淀川ビル5F
投稿日時: 2003-08-28 09:30
引用:

みなさんStrategy使えといっておられますが、


皆さんが「使え!」とは言っていないと思いますが。。。
デザインパターンは、どのパターンも、別に使用を強制するものではないのでは? それぞれの状況にあわせて適用すれば良いだけです。使う必要のないところに使う必要はありません。

引用:

動的なアルゴリズム切り替えってそんなに必要ですか?
中略
Strategy使って動的なアルゴリズム切り替えをしないといけないような要件はゲームくらいしか思いつきません。なにかほかにあるのでしょうか?


GoF本のStrategyの目的には「動的なアルゴリズム切り替え」とは書かれていません。「アルゴリズムをカプセル化し、それらを交換可能にする」と書かれていますね。
前の投稿でも述べたように、Strategyの本質はOCPだと思います。仕様変更が生じた際に、コードを修正することなく、新しいクラスを追加することで対応できるというところが最大の利点ではないでしょうか。
JDKのGUI(ContainerとLayoutManagerなど)関係で効果的に使われていますし、ソートのアルゴリズムの切り替えなんかにも適用できるのではないでしょうか。
Smalltalkでは「さまざまなフォーマットでファイルを保存する」「さまざまな改行方式でテキストデータを処理する」「さまざまな形式で同じデータをグラフ化する」といった適用用途が紹介されています。
Tomcatの設計にも多く取り入れられているみたいですね。さまざまな各機能モジュールをカプセル化しておき、バージョン・アップに伴って、どんどん取り替えていくようにしているみたいです。
maru
ぬし
会議室デビュー日: 2003/01/27
投稿数: 412
投稿日時: 2003-08-28 10:13
おはようございます。

皆さん返答ありがとうございます。
早速近所の本屋に出かけたところ、「Javaデザインパターン 徹底攻略(技術評論者)」という
本があり、読みやすかったので買って読んでいるところです。

で、話はそれますが、読んでてふと思ったのですが、デザインパターンの説明でよくJava
が使われていますよね。そして、よくインターフェースが使われていますよね。
思い込みかも知れませが、インターフェースってJavaは多重継承ができない代わりに取り
入れられた機能みたいな説明をよく見ます。

デザインパターンはオブジェクト指向における設計指針のようなものであって、Javaに
特化したものではないとおもうのですが、インターフェースのない他のオブジェクト指向
言語でもデザインパターンを取り入れることはできるのでしょうか?

C++のデザインパターンの説明は見た事ありますが、DelphiやVB.NET、Ruby、PHP5なんか
でもできるのかな?
VB.NET、Ruby、PHP5なんかはインターフェースの機能が実装されているのかな?
ちなみにJava以外のオブジェクト指向言語はよく知りません。

[ メッセージ編集済み 編集者: maru 編集日時 2003-08-28 10:14 ]

スキルアップ/キャリアアップ(JOB@IT)