コンポーネント指向って、どのような理念の元に作られたものですか??
何が聞きたいのかというと、例えばオブジェクト指向に関して。
オブジェクト指向とは、オブジェクトを中心にデーター(フィールド,etc…)、メソッドをまとめクラスで定義したうんぬん…とプログラミング入門書に書いてあります。まぁ、わかるんですが。でも一番素晴らしいなと思ったのは、こんな感じの以下の説明でした。(参考 スッキリわかるJava入門)
オブジェクト指向とは、メモリ上にあたかも実体が存在するように再現すること。つまり、現実世界を模するバーチャルの世界をよりリアルにする手法。
そんな感じの、理念がかかれてました(様な解釈をしました)。
何かロマンチックだなと思いました。メモリ空間上にあたかも命があるようなインスタンスを生成しちゃえる様な夢のある考え方の理念があるなと。
コンポーネント指向も、こんな夢のある話がさらに進化した話なんですか?
それってどんな話ですか?
なんかうまく質問できなくてすみません。
A 回答 (21件中11~20件)
- 最新から表示
- 回答順に表示
No.11
- 回答日時:
コンポーネント指向は、予めよく使う部品を、
オブジェクト、あるいはオブジェクトの集合として作っておいて
再利用するという考え方です。
単に、部品を作っておくだけではなくて、部品を選んで張り付けたり
設定や動きを調整するための仕組みや、それを支援する開発環境も
含めて、コンポーネント指向と呼ぶようです。
.Netも図形的に表されたコンポーネントをポタリとプログラムに
貼り付けて使ったりできますよね。あれもコンポーネント指向の
一形態です。
>オブジェクト指向とは、メモリ上にあたかも
>実体が存在するように再現すること。
元々の発想はそうです。シミュレーションから発達した技術なので。
但し、実際の実装はそれだけではうまくゆきません。
一例を挙げると、よく引き合いに出されるのに、
鉄道の券売機で売られているチケット(切符)の処理があります。
チケットのある日の売り上げを記録する場合、
その種類のチケットがある駅で一万枚売れたことを記録するのに、
チケットの実体に合わせて、一万個のオブジェクトを
作る人はいません。
チケットの分類、駅、日付とその日に売れた「枚数」を記録した
オブジェクトを一日に1個作るだけでしょう。
リアルワールドの実体とそれをコンピュータ内で表現する
処理対象としてのデータは全く異なる構造になることが
多いのです。
そこを考えてデータ構造と処理方式を考えるのもプログラマの
仕事です。
リアルワールドを真似れば判りやすくて何もかもうまくゆく
と夢見たプログラマがたくさんいましたが、儚い夢で
あったことが分かってます(^^;
コンポーネント指向、なるほどです。ありがとうございました。Unity触ってて実感しました。
で、オブジェクト指向のたとえ話ですけど、それはチケットオブジェクトが記録すると考えるのが間違いなのでは…。リアルに模すなら、券売機にカウンターがあるべきです。で、券売機が複数あるなら、それを取りまとめる管理者オブジェクト一つ有って、その管理者オブジェクトが券売機クラスのカウントメソッドを用いるのでは…。そう考えると、その例え話ではオブジェクト指向の限界が見えません。
まぁ、私の理解の範疇を超えたところで限界はあると思うのですが。無いと逆に進歩の余地無しってことで恐ろしいことですからね。
回答ありがとうございました!
No.7
- 回答日時:
夢を壊したくない。
笑。windowsの容量知ってるよな。
う○こかwindowsって思えてくる。
自称オープンソースのLinux、う○こかって思えてくる。
イーサネット、TCP/IP、なんちゃら階層とか、う○こかって思えてくる。
※まあ気にせず頑張れ。
No.5
- 回答日時:
追伸。
オブジェクト指向をなんでも問題解決できる「銀の弾丸」とはみなさず、開発効率をアップさせる手法のひとつ。ツールボックスに入れる道具の1つというレベルで考えて使えば大きな効果を発揮してくれます。
No.2さんの回答で「その部品を継承して機能を強化する事もあるけど。ようは、部品毎にプログラミングしておいて組み合わせて使う。後でメンテナンスしやすいとかなんとか。」
と書かれているように、最近は、.NET Frameworkなど、そんな感じで機能豊富な部品が使える環境が増えてきています。
そんな便利な「部品」の存在を知り、使い方をマスターしておけば、プロジェクトマネージャが「この機能のプログラムの開発には20日くらいかかるなあ」と見積もっていても、実際には2日くらいでほぼ完成してしまうってこともありました。
「こんな複雑な処理のプログラムが、お手軽、簡単に作れて、しかもバグが無いなんて有り難いなあ」と最近のプロジェクトで感じることが多いです。
ちなみに、「簡単・便利・機能豊富」な部品ってのは、見えないところで沢山のコードが動いているってことです。
プログラムが複雑な処理をする必要があれば、それらの見えないコードは大活躍してくれます。
でも、そんな豊富な機能がいらない処理があるのも現実です。
昨日、「これ、データベースの処理が遅いんだけど・・・」と言われて、その機能豊富な部品を使わないコードに変更したら、1/20くらいの時間で処理が終わってしまい、ちょっと驚きました。
No.4
- 回答日時:
夢を壊したくないけど、javaを覚えた頃にはまた新しい言語、開発手法が出てくるかもよ。
笑。その度、ルール覚えるの大変そう。本当はまず基礎を勉強したほうがよいと思い込んでます。
例:例えばメモリの管理、マルチタスクの仕組み、究極は画面に図を描く仕組み。
アセンブラで全てできます。USBメモリのブート領域に組み込んでUSB起動とか。
ブート領域は512バイトと言われてるが、実は違う。まじです。
BIOSが何してるかとか。詳しくなっちゃう。笑。
で、windows8からまた電源の制御が違ってるとか。
まあ頑張って。
No.3
- 回答日時:
>>その、戦艦大和を入れるとプログラミングしちゃう人はそもそもオブジェクト指向が何たるかを理解できてないのでは…
そのとおりで、オブジェクト指向が理解できていないからではありますけどね。
そして、最近の2ch掲示板で、オブジェクト指向関係の書込みを見ていても、オブジェクト指向に対して大きな勘違いをしている人が以外と多いので驚きを感じました。
いちおう「自称」あるいは「プロ」のプログラマっていう方たちが参加しているはずの、しかも十数年前に書かれた過去ログでなく、最近の掲示板の書込みにおいてですからね。
例にあげたものは、極端な例だから、誰もが誤りと分かります。
でも、オブジェクト指向が何でも解決できる「銀の弾丸」と思い込んでいて、それが分からない人が多い。
ちなみに私も、過去において数億レベルの開発費が無駄になったプロジェクトに参加していました。
そのプロジェクトに参加してすぐに、「これはダメだろう・・・」と思ったものですが、途中参戦で、しかも下請けで、何も言えなかった。
>>理念が間違ってるというより、プログラミングのバグなのでは…。
プログラムのバグレベルならいいのですがね。
多くは、オブジェクト指向の理念を間違えている、つまりは根本が理解されてないから被害がでかくなりがちです。
数億が無駄に…。私の本業は全くプログラミングと対称的で、最近入門書を理解した程度で対等に話すのはおこがましいと思いますが。
「銀の弾丸」とは思わない程度に夢抱いときますw
回答ありがとうございましたw
No.2
- 回答日時:
現実世界を模するバーチャルの世界をよりリアルにする手法 ← 嘘つきな本だな。
オブジェクト指向って、機能(部品)別にクラスと言う概念で作ってその機能(部品)を組み合わせて
アプリケーションを作る手法。その部品を継承して機能を強化する事もあるけど。
ようは、部品毎にプログラミングしておいて組み合わせて使う。後でメンテナンスしやすいとかなんとか。
メモリを余分に使うかも。(忘れた)
メモリ節約するなら、DLL等とか使うけど。まあ所詮だれかさんが考えた手法にすぎない。
JAVA、C#、VB、Delphi、等所詮人が作ったルールでプログラミングしてるだけ。
アセンブラ覚えてC言語おぼえる方がよっぽどPCに詳しくなるし独自コンパイラも作れる。
で、コンポーネント指向はよくわかりません。(どうでもいい)
まあ大勢で作るようなアプリケーションは、オブジェクト単位(コンポーネント単位)で作るんじゃないの?
生産性向上のためかな。そのかわりプログラムより設計が大変そう。
※本当に生産性向上に役立ってるかは知らない。因みにアジャイル開発ってのもあるかも。
本が嘘つきというより、私の記憶がねじ曲がったのかもしれませんが(笑)
部品化…そうですね。手法的にはそうです。。。
何だか中二病的な夢が壊れていくw
回答、ありがとうございましたw
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java オブジェクト指向プログラミングの実践本を紹介してください 3 2022/09/19 04:56
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/05/21 02:41
- その他(悩み相談・人生相談) 夢はどんどん人にああまくれって言うけれど 4 2023/02/28 01:03
- CAD・DTP Autocad Scriptファイルからの入力とコマンドラインからの入力が違う 1 2023/08/01 09:13
- 就職 高校2年生です。将来の夢やそれに向けた進路、そろそろ決めるべきだと思うのに、魅力的な職業がわんさかあ 4 2022/11/15 12:22
- 書類選考・エントリーシート 【急ぎです】指定校推薦の志望理由書の添削お願いしたいです! 商学部で1600字中1595字です 志望 1 2023/08/24 02:54
- 医師・看護師・助産師 看護専門学校の入学志望動機の添削をお願い致します(400~800字以内) 2 2022/07/17 14:39
- その他(車) ドライバーの皆様、自転車の方向指示は手信号以外の方法は信用できる? できない? 6 2023/06/01 19:27
- 日本語 [ 5-イ. 先生に本をもらった ] 11 2022/10/28 18:25
- その他(自然科学) 理系と文系、現実と心、科学と文学を繋ぐためには「性質」の世界が存在することを認めるべきでは? 4 2022/08/24 16:43
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
共通モジュールでDBへの接続と...
-
[VBA] Classから他のClassを呼...
-
Excel vbaで複数のテキストボッ...
-
VBA シートのボタン名を変更し...
-
パソコンへの「Dropbox...
-
実行時エラー 438になった時の...
-
ユーザーフォームのテキストボ...
-
ユーザーフォームを表示中にシ...
-
カメラスクロールするのを動画...
-
worksheetFunctionクラスのVloo...
-
VBA(エクセル)で自動的にボタン...
-
「Columns("A:C")」の列文字を...
-
エクセルエラー13型が一致しま...
-
ボタンをマウスで押し続けたと...
-
実行時エラー 3265「要求された...
-
エクセルのVBAの標準モジュール...
-
テキストボックス(VBA)でEnter...
-
コントロールを移動できない
-
VBAがブレークモードになっ...
-
ウォッチ式の文字数制限について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
共通モジュールでDBへの接続と...
-
[VBA] Classから他のClassを呼...
-
Excel vbaで複数のテキストボッ...
-
他のモジュールのプロシージャ...
-
用語の意味の違いを教えてくだ...
-
VB.netで、動的な型変換を行い...
-
宣言とは違うオブジェクトを作...
-
コンポーネント指向って、どの...
-
【JSF】バッキングビーンから別...
-
WPFでCanvas の子要素にアクセ...
-
VBA モジュールレベル・パブリ...
-
VB.NETにて文字列で指定した関...
-
VBAで、Functionを、クラスモジュール...
-
コンストラクタとデリゲートの...
-
Form2の変数をForm1に渡す方法...
-
Windows8でのTomcatの自己アドレス
-
ユーザーコントロールのメソッ...
-
リフレクションはどういったも...
-
Python クラスとモジュールの...
-
VB6で外部から静的アクセスが可...
おすすめ情報
注:回答は回答で待ってますw