- - PR -
オブジェクト指向とUMLの研修について
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2004-01-23 10:21
はにまるです。
オブジェクト指向を御勉強中です。
この意見に非常に興味を持って自分成りに考えたのですが、 その中で素朴な疑問です。 ”オブジェクト指向≒パターン化して考える”と 今の所、考えているのですが、 そうすると、オブジェクト指向は、対象モデルに 例外パターンが多い場合、不向きと考えて宜しいのでしょうか? 宜しく御願い致します。 | ||||
|
投稿日時: 2004-01-23 10:49
るぱんです。
オブジェクト指向って思想だと考えています。 ・・・で、 何が言いたいかと言うと、 わけのわからない物をどのように捉えるかと言う 物体を認識する際の指標のような物ということではないかと。 切り口の一つではないかと考えている次第です。 いかがでしょうか? | ||||
|
投稿日時: 2004-01-23 11:23
はにまるです。
これは、私宛ての返答という事で考えて宜しいでしょうか? るぱんさんの説明は、”オブジェクト指向は、整理手法の一つ”と 言い換えて宜しいでしょうか? いささか強引ではありますが、 ”言い換えて良い”事を前提として記述致します。 書籍で困るのが、 オブジェクト指向の素晴らしさ(メリット)を列挙されているのは良いのですが、 あくまで、”整理手法”である限り、不得手なエリアと言うのが ある筈ですが、それが記述されていません。 又、 何もかもオブジェクトで考えれる様な記述が書籍にありましたが、 (”人間の脳は概念で物事を考える”と別分野の書籍でもあったので、 その点は、納得はしています。) この文書が、私を含めた初心者からすると ”全てをオブジェクト指向で考えると良い”と受け止めれてしまいます。 個人的には、オブジェクト指向で考える目的(考えの整理)からすると ”全てをオブジェクト指向で考える”事に懐疑的です。 その様な意味で、 -------------------------------------------------- オブジェクト指向で考える目的(考えの整理)からして オブジェクト指向が不得手とするエリアの特性は何か? -------------------------------------------------- と言うのが質問の意図です。 説明不足で申し訳御座いません。 # 別スレッドの方が良かったかも... 反省 m(_ _)m [ メッセージ編集済み 編集者: はにまる 編集日時 2004-01-23 11:26 ] | ||||
|
投稿日時: 2004-01-23 11:40
横から失礼します。
はにまるさん
例外、というのが何をさすのかは難しいところですが、必ずしも不向きという わけではないと思います。かえって多相性がある分、例外を許容しやすい仕組みが 考慮されているのではないかと思います。 もっとも、どこまで「例外」をあらかじめ予測できるかが最後は重要になってくる ので、これは必ずしもオブジェクト指向だから解決する、という問題でもない ような気もします。 | ||||
|
投稿日時: 2004-01-23 11:42
「不向き」というのはちょっと極論で、「難しい」ぐらいのイメージで しょうか。 私も理解できているというわけではないですが、モデリングやパターン化 等、オブジェクト指向に出てくるキーワードがありますが、形だけでいえば パターン化ということもできますが、問題はカプセル化つまりその「独立性」 をうまく持たせないと意味が無くなるのではないかと。 http://www.atmarkit.co.jp/fjava/devs/object01/object01.html では「自立分散強調動作」と言っておられますが。 例外パターンが多くても良いのですが、なかなか業務によっては各モデルの独立 性を持たせることができないようなところがありますよね。 モデルとモデルが手続き等によって強い因果関係で結ばれているようなもの とか...(うまく表現できない(^^ゞ) ここがね、あるプログラムコード部分ではオブジェクト指向になっていても、全体として オブジェクト指向と呼べるものかどうかというところが... | ||||
|
投稿日時: 2004-01-23 11:59
はにまるです。
るぱんさん、tuさん、Beatleさん返答ありがとうございます。 今は、勉強中の身ですので、「解ったと思います」のレベルで 留めておきます。 ^^; 勉強ばかりで頭に知識はあるが、体に染み付いていない。 その為、業務とは別に、 業務アプリの設計業務でオブジェクト指向を利用して 設計図等を書いていたのですが「難しい」領域で 初心者が利用するのは、危険ですね... やはり、手続言語では、この様なプログラムだが オブジェクト指向言語を利用するとこんなに”楽が出来る”と 言う所から、オブジェクト指向を身に付ける事が良さそうですね... 可能であれば、”手続言語の設計者”から”オブジェクト指向言語の設計者” へ移転する場合、一旦、”オブジェクト指向言語の開発”を する事が良さそうですが、 会社はその様な、ステップを用意してくれないので、 自分でオブジェクト指向言語を使って、 オブジェクト指向を身に付け様と思います。 | ||||
|
投稿日時: 2004-01-23 12:07
「オブジェクト指向」、「構造化」といったパラダイムの違いは要するに「視点」の違いだと
考えています。 分析: システム(または業務)を、「オブジェクト(または責務)」の視点で捉えるか、「機能とデータ」 の視点で捉えるか。 設計・実装: システムを「オブジェクト(または責務)」の視点で分割するか、「機能とデータ」の視点で 分割するか。 ここで「責務」と書きましたが、システムで必要な責務を割り出し、その責務をどのように 割り当てるかが、オブジェクト指向設計(プログラミング)の肝です。責務とは、「何を知って いるか(データ)」、「何ができるか(機能)」です。よくオブジェクト指向の利点として データと機能が一体になっていることがあげられますが、それは利点というより定義です。 オブジェクト指向設計の話になると、よくGoFを始めとするデザインパターンが取り上げられ ますが、その前にまずどのように責務を割り当てるかについての原則(例えばGRASPパターン) を理解すべきだと思います。 | ||||
|
投稿日時: 2004-01-23 13:04
こんにちは。米山@クロノスです。
一部「オブジェクト指向」を「銀の弾」に仕立て上げようとしているような節も見られますが。 私はオブジェクト指向とは、現実世界の仕組みや我々人間の思考方法を投影したものだと思っています。 オブジェクトは「状態」と「振る舞い」を有し、オブジェクト同士がメッセージ・パッシングを行いながら時間軸は進んでいく。。。 オブジェクトにはロール(役割)や責務があり、インターフェイス(無意識レベルで)を介してやり取りを行っている。。。 現実世界あるいは人間の思考は限りなく「オブジェクト指向」だと思いませんか? 「我々の思考にとってオブジェクト指向がきわめて自然であるなら、それをソフトウェア工学にも応用しようじゃないか」と。 それだけじゃだめですかね? [ メッセージ編集済み 編集者: 米山@クロノス 編集日時 2004-01-23 13:06 ] | ||||
