- PR -

デザインパターンって使いますか?

投稿者投稿内容
YOU@IT
ぬし
会議室デビュー日: 2002/03/29
投稿数: 284
お住まい・勤務地: 大阪
投稿日時: 2004-02-21 19:53
定数宣言するときはType safe Enumを使いまくりです。
(もちろん使うどころは気をつけてますけどね)
かずくん
ぬし
会議室デビュー日: 2003/01/08
投稿数: 759
お住まい・勤務地: 太陽系第三惑星
投稿日時: 2004-02-22 00:13
テーブルに対してソート機能を追加するため、ソートIFであるSortableを用意し、これとTableModelから派生したクラスを作成。
この派生したテーブルモデルに対して、ソートアルゴリズムを切り替えできるようにするため、インターフェースSortStrategy介してソートを実行するように実装しました。

使用する側は、Sortableとしてこのモデルの参照を握らせ、ソート対象を意識しないで済むようにしました。
このときは、それほどデータ数が多くなかったため、挿入ソートをSortStrategyの派生クラスとして実装しました。


skulker
常連さん
会議室デビュー日: 2003/11/13
投稿数: 41
投稿日時: 2004-02-22 00:16
Singleton, Iterator, Adapter くらいならパターンである事すら意識せずコーディングしちゃっているのでは。
Strategy, State, Proxy, Templete Method くらいだと「あのパターン使えるな」と考える。
Interpreter, Visitor くらいだと・・・
おばけ
ぬし
会議室デビュー日: 2002/11/14
投稿数: 609
お住まい・勤務地: 東京都江東区
投稿日時: 2004-02-22 14:07
引用:

デザパタ知らない人でもTemplateMethodなんかはまず使っているでしょうね。


そうですよね。私も全くデザインパターンと言うものを知らない頃からTemplate Method
は使っていました。他にも2〜3あった気がします。

私は、デザインパターンと言うのは「会話で使う共通語彙」だと思っています。
デザインパターンは、無理に当てはめて使うものでもなく、かといって必要であれば
意識する間もなく自然に使っているものです。じゃあなぜデザインパターンがあるの
だろうと考えると、開発者間である1つのデザインパターンについて話をする時に、
「それに名前がついていた方が便利だし誤解が無い」からだと思っています。

別にTemplate Methodに名前が付いていなくても設計上や実装上は困らないのでしょう
けれども、開発者間で会話をする時にTemplate Methodという名前が付いていた方が
便利だからなのではないでしょうか?

そういう意味で、私は結城先生のデザパタ本を持っていますが、どちらかというと
「xxxっていう感じの実装方法はデザパタで言うとなんという名前なんだろう?」と
いう感じで、逆引き(実装方法からパターン名を調べる)辞書みたいな感じで使って
います。
aa
ぬし
会議室デビュー日: 2004/01/08
投稿数: 299
投稿日時: 2004-02-22 22:50
ちょっと独り言的な書き込みになりますが失礼。

私がデザインパターンの勉強をしてから感じているのは、オブジェクト指向的な設計できてる? っていう問いかけでした。

>デザインパターンの考え方はすごく良いと思いますが、
>なかなか、本当に、それが必要な開発って滅多にないのでは?

ださいプログラミングとかを気にならなければ、main一本でも可能だし、Cのようにいくつかのロジックを関数化してもクラス1つでも可能です。

javaを使えばオブジェクト指向的な設計・開発は可能ですが、java使っているからといってオブジェクト指向的な設計・開発ができるわけではありません。

>フレームワーク的なところで用意されているものではなくて、
>自前で使っている方はおられませんか?

身近なところで言えば、
ArrayList list = new ArrayList();
とするか、
List list = new ArrayList();
とするかの違いが分かるかどうかってな具合でしょうか。
これはListやArrayListクラスを提供している人が意図している使い方を、これを利用する者ができるか否かというってな話なのかもしれませんが、

「オブジェクト指向的な設計・開発ができる」=「デザインパターンを活用できる」

と考えてもよいのではないのかなと思います。
MamezouHagimoto
常連さん
会議室デビュー日: 2001/10/27
投稿数: 24
投稿日時: 2004-02-23 00:24
引用:

デザインパターンの考え方はすごく良いと思いますが、
なかなか、本当に、それが必要な開発って滅多にないのでは?
と思うことがあります。普通?の開発くらいなら、それほど洗練されたものを
使う必要がない気もします。



意識して活用するのは数少ない典型的なパターンに限られる
ように思います。ただ、自分の日ごろ使っているプログラミングテク
ニック、クラス構造とその中でやり取りするメカニズムについて、頭
の中で整理をして自分パターンを作り出し、デザインパターンと比較
するとスキルアップに使えますよ。
また、デザインパターンで書かれている目的とフォースについて、し
っかり勉強し、その結果としてのクラス構造やメカニズムをView(解
決法のひとつ)と考えることで、かなり応用が利くのではないでしょ
うか。

萩本順三


[ メッセージ編集済み 編集者: MamezouHagimoto 編集日時 2004-02-23 01:22 ]
小夜
会議室デビュー日: 2004/02/19
投稿数: 2
投稿日時: 2004-02-23 10:13
引用:

aaさんの書き込み (2004-02-21 14:00) より:
引用:

プリンスさんの書き込み (2004-02-21 12:34) より:
皆さんが指摘しているように、デザインパターンのよいところは設計者さえポイントをおさえていれば、実装者は自分がデザインパターンを使ってるなんて知らなくても良いし、知ることもないだろうってことでしょう。コマンドパターン、テンプレート、デコレータなんかそれが良く現れてますよね?サーブレットやEJBのようなフレームワークをささえているのはデザインパターンだとおもいます。



ちょっと甘い気がします。
Javaではありませんが、私はひどい目に遭いました。
実装者にデザインパターンの知識がなければ、
せっかくのデザインパターンもその能力(本来のデザインパターンを使
用する目的)を発揮できません。



そうでしょうか・・・
そもそもデザインパターン自体は
「こういった問題を解決するには、こういう構造のプログラムを書けばいい」
というノウハウ集みたいなもので
全ての知識がなくとも、特定パターンに準拠することで
不慣れな技術者でも正しい方向に導いていくことができるように
開発されたものではないでしょうか。
もちろん、再利用できる程度の知識は必要だと思いますが、
デザインパターンについて、実装者はさして深い知識は必要ないと思います。
るぱん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 1370
投稿日時: 2004-02-23 11:40
るぱんです。
横槍ですいません。

小夜さんにお伺いしたい事がありコメントします。
引用:

「こういった問題を解決するには、こういう構造のプログラムを書けばいい」
というノウハウ集みたいなもので
全ての知識がなくとも、特定パターンに準拠することで
不慣れな技術者でも正しい方向に導いていくことができるように
開発されたものではないでしょうか。


この点については合意します。
ただし、ノウハウは特定の前提条件がついた時に有効であると言う認識を働かせると、
引用:

もちろん、再利用できる程度の知識は必要だと思いますが、
デザインパターンについて、実装者はさして深い知識は必要ないと思います。


これが無しかな?と思いました。
理想論として
引用:

実装者はさして深い知識は必要ない


とは思います。

設計と開発が完全に切り離された状態であれば正しい認識だと思います。
現実問題では設計まで含めて、
下手したら要求定義から丸投げ食らってると言う現状があります。

理想論は理想論として正しいと思うんですけどね、
現実問題とどこまですり合わせる事が出来るかって大切だと思うんですよね。

技術者サイドから「自分の作業はここまで!」
ってできればそれに越した事は無いんですけどね。

お金出す人=絶対的な発言力を持つ
と言う構造は変わりが無いと思うんですよね。

現実問題で、そこまで顧客突き放して受注できますかね?

[ メッセージ編集済み 編集者: るぱん 編集日時 2004-02-23 11:43 ]

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