- - PR -
デザインパターンって使いますか?
| 投稿者 | 投稿内容 | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-02-21 19:53
定数宣言するときはType safe Enumを使いまくりです。
(もちろん使うどころは気をつけてますけどね) | ||||||||||||
|
投稿日時: 2004-02-22 00:13
テーブルに対してソート機能を追加するため、ソートIFであるSortableを用意し、これとTableModelから派生したクラスを作成。
この派生したテーブルモデルに対して、ソートアルゴリズムを切り替えできるようにするため、インターフェースSortStrategy介してソートを実行するように実装しました。 使用する側は、Sortableとしてこのモデルの参照を握らせ、ソート対象を意識しないで済むようにしました。 このときは、それほどデータ数が多くなかったため、挿入ソートをSortStrategyの派生クラスとして実装しました。 | ||||||||||||
|
投稿日時: 2004-02-22 00:16
Singleton, Iterator, Adapter くらいならパターンである事すら意識せずコーディングしちゃっているのでは。
Strategy, State, Proxy, Templete Method くらいだと「あのパターン使えるな」と考える。 Interpreter, Visitor くらいだと・・・ | ||||||||||||
|
投稿日時: 2004-02-22 14:07
そうですよね。私も全くデザインパターンと言うものを知らない頃からTemplate Method は使っていました。他にも2〜3あった気がします。 私は、デザインパターンと言うのは「会話で使う共通語彙」だと思っています。 デザインパターンは、無理に当てはめて使うものでもなく、かといって必要であれば 意識する間もなく自然に使っているものです。じゃあなぜデザインパターンがあるの だろうと考えると、開発者間である1つのデザインパターンについて話をする時に、 「それに名前がついていた方が便利だし誤解が無い」からだと思っています。 別にTemplate Methodに名前が付いていなくても設計上や実装上は困らないのでしょう けれども、開発者間で会話をする時にTemplate Methodという名前が付いていた方が 便利だからなのではないでしょうか? そういう意味で、私は結城先生のデザパタ本を持っていますが、どちらかというと 「xxxっていう感じの実装方法はデザパタで言うとなんという名前なんだろう?」と いう感じで、逆引き(実装方法からパターン名を調べる)辞書みたいな感じで使って います。 | ||||||||||||
|
投稿日時: 2004-02-22 22:50
ちょっと独り言的な書き込みになりますが失礼。
私がデザインパターンの勉強をしてから感じているのは、オブジェクト指向的な設計できてる? っていう問いかけでした。 >デザインパターンの考え方はすごく良いと思いますが、 >なかなか、本当に、それが必要な開発って滅多にないのでは? ださいプログラミングとかを気にならなければ、main一本でも可能だし、Cのようにいくつかのロジックを関数化してもクラス1つでも可能です。 javaを使えばオブジェクト指向的な設計・開発は可能ですが、java使っているからといってオブジェクト指向的な設計・開発ができるわけではありません。 >フレームワーク的なところで用意されているものではなくて、 >自前で使っている方はおられませんか? 身近なところで言えば、 ArrayList list = new ArrayList(); とするか、 List list = new ArrayList(); とするかの違いが分かるかどうかってな具合でしょうか。 これはListやArrayListクラスを提供している人が意図している使い方を、これを利用する者ができるか否かというってな話なのかもしれませんが、 「オブジェクト指向的な設計・開発ができる」=「デザインパターンを活用できる」 と考えてもよいのではないのかなと思います。 | ||||||||||||
|
投稿日時: 2004-02-23 00:24
意識して活用するのは数少ない典型的なパターンに限られる ように思います。ただ、自分の日ごろ使っているプログラミングテク ニック、クラス構造とその中でやり取りするメカニズムについて、頭 の中で整理をして自分パターンを作り出し、デザインパターンと比較 するとスキルアップに使えますよ。 また、デザインパターンで書かれている目的とフォースについて、し っかり勉強し、その結果としてのクラス構造やメカニズムをView(解 決法のひとつ)と考えることで、かなり応用が利くのではないでしょ うか。 萩本順三 [ メッセージ編集済み 編集者: MamezouHagimoto 編集日時 2004-02-23 01:22 ] | ||||||||||||
|
投稿日時: 2004-02-23 10:13
そうでしょうか・・・ そもそもデザインパターン自体は 「こういった問題を解決するには、こういう構造のプログラムを書けばいい」 というノウハウ集みたいなもので 全ての知識がなくとも、特定パターンに準拠することで 不慣れな技術者でも正しい方向に導いていくことができるように 開発されたものではないでしょうか。 もちろん、再利用できる程度の知識は必要だと思いますが、 デザインパターンについて、実装者はさして深い知識は必要ないと思います。 | ||||||||||||
|
投稿日時: 2004-02-23 11:40
るぱんです。
横槍ですいません。 小夜さんにお伺いしたい事がありコメントします。
この点については合意します。 ただし、ノウハウは特定の前提条件がついた時に有効であると言う認識を働かせると、
これが無しかな?と思いました。 理想論として
とは思います。 設計と開発が完全に切り離された状態であれば正しい認識だと思います。 現実問題では設計まで含めて、 下手したら要求定義から丸投げ食らってると言う現状があります。 理想論は理想論として正しいと思うんですけどね、 現実問題とどこまですり合わせる事が出来るかって大切だと思うんですよね。 技術者サイドから「自分の作業はここまで!」 ってできればそれに越した事は無いんですけどね。 お金出す人=絶対的な発言力を持つ と言う構造は変わりが無いと思うんですよね。 現実問題で、そこまで顧客突き放して受注できますかね? [ メッセージ編集済み 編集者: るぱん 編集日時 2004-02-23 11:43 ] | ||||||||||||
