C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 152 を表示中)
■88311 / )  Re[17]: オブジェクト指向とはつまり何ですか?
□投稿者/ はまぐり (55回)-(2018/08/20(Mon) 11:47:08)
No88308 (Jitta さん) に返信

Jittaさんこんにちは
厳しい暑さもようやく峠を越えましたね

哲学者ルネ・デカルトは言いました
分かるとはどういうことか
物事を分けていって分けたものを組み合わせて
元に戻すことができたら分かったと言って良いのではないだろうか

Jittaさんはオブジェクト指向を分けたわけですね

<オブジェクト指向> : <オブジェクト> <指向>
<オブジェクト> : 目的
<指向> : <指> <向>
<指> : ゆびでさし示す
<向> : --省略--

それをもう一度組み合わせて<目的志向>の完成ですと

変わっちゃってるじゃないですか、元に戻ってないんです
目的志向が正しいとすればオブジェクト指向が誤訳ということになりますが
オブジェクト指向を分かってないだけだと思うんです

以前コバンザメを例に説明しましたけど分かり辛かったと思うのでカブトガニで説明しましょうか
カブトガニを分けましょう

<カブトガニ> : <カブト> <カニ>
<カブト> : 戦国武将が身につけるヘルメット
<カニ> : --省略--

ゆえに、カブトガニはとても勇ましいカニであると言ってるようなものです
カブトガニは織田信長ではありませんし、カニでもありません

辞書の使い方を間違えてると思うんですよ
部分にこだわるあまり全体を見失っておられる

object-orientedとは - IT用語辞典 Weblio辞書
https://www.weblio.jp/content/object-oriented

> オブジェクトとは, 一般的には個別に操作可能な対象をいうが,
> オブジェクト指向プログラミングでは, データとそれを操作する関数(メソッド)を一纏めにしたものをいう

これなら明瞭ですね
オブジェクト指向言語のC#にclassが存在することと完全に一致します


> 「
> オブジェクトは、クラスやインスタンスといった「もの」指すこともあるが、その「もの」が作られた目的でもある。
> ものが作られた目的、あるいは、自分が設計するクラスの目的を考えながら(=志向して)設計する。
> 」
> と説明がある方が、初めて Object Oriented にふれる人にはわかりやすいのではないだろうか。

AはBである
AはBのCである
が成り立つということですね

解釈としては興味深いです、追求したら新しい発見がありそうな気がします
時間ができたら私も考えてみようと思います

それはそれとしてダブルミーニングが分かりやすいとは思えないです
「オブジェクト指向の定義」と「オブジェクトの設計原則」がガッチャンコされてるように思いました

オブジェクトが果たす役割は1つであるべきだというのは
一般的には単一責任原則(Single Responsibility Principle)と言われますよね
一般的な用語を用いた方が検索しやすいという意味で分かりやすいと思います

目的志向と教わったけどマイクロソフトのページにはそんなことどこにも書かれてないよ
どうしたらいいのさみたいなことは避けられるかと

オブジェクトは、データと振る舞いをセットにしたもの
オブジェクト指向は、オブジェクトに基づくこと
オブジェクトの設計原則には、オブジェクトが果たす役割は1つであるべきだという考え方がある

というように分けた方がいんじゃないかなと思いました

目的が存在することによってオブジェクト指向は手続き型や関数型といった
同類の概念とは区別される、と、言えるならば、目的はオブジェクト指向の本質である、と、言えますが
手続き型にも関数型に目的はありますからそうは言えないですよね
よって、目的はオブジェクト指向の本質ではないと思うんですよ

返信 編集キー/


管理者用

- Child Tree -