前スレ
オブジェクト指向って自然な文法だな 2
http://echo.2ch.net/test/read.cgi/tech/1490506257/
探検
オブジェクト指向って自然な文法だな 3 [無断転載禁止]©2ch.net
レス数が1000を超えています。これ以上書き込みはできません。
2017/04/02(日) 16:30:38.65ID:n7h/bBRg
971デフォルトの名無しさん
2017/07/07(金) 08:31:15.22ID:SENaJwbT972デフォルトの名無しさん
2017/07/07(金) 08:42:08.67ID:G2hd19q1973デフォルトの名無しさん
2017/07/07(金) 08:54:11.36ID:3/JgoNbI 継承はあるけど継承の継承は出来ないって例えばどの言語?
974デフォルトの名無しさん
2017/07/07(金) 08:54:25.16ID:8UX+Q+HA オブジェクトが必ずしもDBとだけ対応してるってのは
間違いじゃないかな?
関数オブジェクトとかあるし、
GoFのデザパタとかで出て来るオブジェクトは全然DB関係ない
のばっかりじゃん。
JavaScriptやUIプログラミングもオブジェクト指向化してるけど
UIなんてDBと無関係だぞ。
俺は >>937だけど、JavaScriptやっててオブジェクトは「生命体」
だと思ったんだよ、「xxxer」 ていうオブジェクト作ること多いじゃん、
だから「xxxをする人」ってことでしょ。
DIとかオブジェクトを引数としてやり取りしたり、
メソッド内で他のオブジェクトを new したりすると何やってんだか
はじめはわからなくなったけど、
「ある生命体Aの部下として生命体Bを『配属』させ、所有物のように受け渡したり、
部下として仕事をさせる」と考えると結構上手く説明がつくことに気づいたんだよ。
間違いじゃないかな?
関数オブジェクトとかあるし、
GoFのデザパタとかで出て来るオブジェクトは全然DB関係ない
のばっかりじゃん。
JavaScriptやUIプログラミングもオブジェクト指向化してるけど
UIなんてDBと無関係だぞ。
俺は >>937だけど、JavaScriptやっててオブジェクトは「生命体」
だと思ったんだよ、「xxxer」 ていうオブジェクト作ること多いじゃん、
だから「xxxをする人」ってことでしょ。
DIとかオブジェクトを引数としてやり取りしたり、
メソッド内で他のオブジェクトを new したりすると何やってんだか
はじめはわからなくなったけど、
「ある生命体Aの部下として生命体Bを『配属』させ、所有物のように受け渡したり、
部下として仕事をさせる」と考えると結構上手く説明がつくことに気づいたんだよ。
975デフォルトの名無しさん
2017/07/07(金) 08:59:17.56ID:6QLBDLc9 「おいら」って20年ぶりくらいに見た
976デフォルトの名無しさん
2017/07/07(金) 09:00:08.09ID:U3HkjAD4 クラスあるいはそれに準ずる言語機能を抽象データ型(簡単にはユーザー定義型)として扱う着想において
クラスの継承により部分型を表現するのは危険をはらむということはかなり早い時期に指摘されている
だから言語機能としてのインターフェースが考案され、以降はそれを使って部分型を安全に表現する言語が汎用されている
継承は部分型を表現すること以外に、実装の重複をなくす(簡単にいうとコピペによる分散を防ぐ)役割も担っていたが
初期のインターフェースは実装を持てなかったため、継承のメリットのうち後者は捨てるか、クラスとの併用で気をつけて使うしかなかった
ただ、型クラスやトレイトという考え方や言語機能が考案され、インターフェイスも実装を持てるようになったので
クラス(というか継承)の役割はほぼ終わりつつある
クラスの継承により部分型を表現するのは危険をはらむということはかなり早い時期に指摘されている
だから言語機能としてのインターフェースが考案され、以降はそれを使って部分型を安全に表現する言語が汎用されている
継承は部分型を表現すること以外に、実装の重複をなくす(簡単にいうとコピペによる分散を防ぐ)役割も担っていたが
初期のインターフェースは実装を持てなかったため、継承のメリットのうち後者は捨てるか、クラスとの併用で気をつけて使うしかなかった
ただ、型クラスやトレイトという考え方や言語機能が考案され、インターフェイスも実装を持てるようになったので
クラス(というか継承)の役割はほぼ終わりつつある
977デフォルトの名無しさん
2017/07/07(金) 09:28:29.21ID:G2hd19q1 >>974
初心者への例え話レベルですね。
客、ウェイター、料理人、冷蔵庫(データベース)
客がウェイターに指示をする。
ウェイターが料理人に指示をする。
料理人が冷蔵庫から材料を取り出す。
でも、プログラム上では冷蔵庫から食材を料理人に渡す人がいる。
現実世界では包丁は料理人が使わないと効果を発揮しない。
プログラム上では、包丁だけあれば食材を切り刻むことができる。
店長は、店員を部下を持つ。
だが、店長の所有物ではない。
店員のリポジトリから、店コードでアクセスするものだ。
店長も店から見れば店の所有物なのだから。
だから、データにアクセスする機能は人オブジェクトにはない。
初心者への例え話レベルですね。
客、ウェイター、料理人、冷蔵庫(データベース)
客がウェイターに指示をする。
ウェイターが料理人に指示をする。
料理人が冷蔵庫から材料を取り出す。
でも、プログラム上では冷蔵庫から食材を料理人に渡す人がいる。
現実世界では包丁は料理人が使わないと効果を発揮しない。
プログラム上では、包丁だけあれば食材を切り刻むことができる。
店長は、店員を部下を持つ。
だが、店長の所有物ではない。
店員のリポジトリから、店コードでアクセスするものだ。
店長も店から見れば店の所有物なのだから。
だから、データにアクセスする機能は人オブジェクトにはない。
978デフォルトの名無しさん
2017/07/07(金) 11:35:17.41ID:6eecx6PE 「おいら」さんはいつもの変な子でしょ。
なんか今日はこまめにID変えてるけど。
そうじゃなくて、むかしは大型コンピュータしかなかったから
大きな処理を行うにつれて「ネットワークで繋がった他のコンピュータに処理を委譲する」という
処理形式が現実になってきた。
そうなるともはや処理時間も通信状態も不明な他所のコンピュータで動いてる処理を
シーケンシャルな一意の順番で行ってゆくというのが非現実的になるのが明白で
そういった視点から「こういう処理をせよ」とクラス(独自の処理単位/物理的に別な機械)に命令したら
その単位が他に依存しないで自律的に処理を行う「オブジェクト指向」が提唱された。
(オブジェクトの再利用がどーのというオブジェクト指向とは別物)
そして、現代では「このシーケンシャルに処理が行われるとは限らない」は
薄れるどころかますます重要性を増してる要素なのだけど
なぜか亡霊のように『処理の間に他人が絡まなければ』って
局所的処理があたかもこれからも可能だと"信心"してる
関数型言語とかいうのが地獄の底から這い出してきて
世界の皆が困惑してる。だいたいそんな状況。
なんか今日はこまめにID変えてるけど。
そうじゃなくて、むかしは大型コンピュータしかなかったから
大きな処理を行うにつれて「ネットワークで繋がった他のコンピュータに処理を委譲する」という
処理形式が現実になってきた。
そうなるともはや処理時間も通信状態も不明な他所のコンピュータで動いてる処理を
シーケンシャルな一意の順番で行ってゆくというのが非現実的になるのが明白で
そういった視点から「こういう処理をせよ」とクラス(独自の処理単位/物理的に別な機械)に命令したら
その単位が他に依存しないで自律的に処理を行う「オブジェクト指向」が提唱された。
(オブジェクトの再利用がどーのというオブジェクト指向とは別物)
そして、現代では「このシーケンシャルに処理が行われるとは限らない」は
薄れるどころかますます重要性を増してる要素なのだけど
なぜか亡霊のように『処理の間に他人が絡まなければ』って
局所的処理があたかもこれからも可能だと"信心"してる
関数型言語とかいうのが地獄の底から這い出してきて
世界の皆が困惑してる。だいたいそんな状況。
979デフォルトの名無しさん
2017/07/07(金) 11:57:04.53ID:U3HkjAD4 >>969
> 昔はCUIからGUIに移行するときの規模に対応するためにOOPが誕生した。
それはアラン・ケイのメッセージングのOOPの話で、継承を前提とした現在主流の抽象データ型のOOPとは関係ないよ
念のためメッセージングのOOPというのは所謂「オブジェクトにメッセージを送って」とかいうお題目を唱えながら
設計・実装・実行・運用と幅広い局面における「可能な限りの決定の遅延」を徹底する考え方ね
http://squab.no-ip.com/collab/uploads/61/IsSoftwareEngineeringAnOxymoron.pdf
>>978
> そうなるともはや処理時間も通信状態も不明な他所のコンピュータで動いてる処理を
> シーケンシャルな一意の順番で行ってゆくというのが非現実的になるのが明白で
> そういった視点から「こういう処理をせよ」とクラス(独自の処理単位/物理的に別な機械)に命令したら
> その単位が他に依存しないで自律的に処理を行う「オブジェクト指向」が提唱された。
そんな「オブジェクト指向」の出自は初耳なんだけど誰が提唱したもの?
ちなみに抽象データ型のオブジェクト指向は、C with Classe(後にC++)のスウストラップのこちらの所謂 what-is 論文が有名
http://dl.acm.org/citation.cfm?id=624721
同時期にEiffelのメイヤー、抽象データ型のリスコフ、SIMULAでクラスとオブジェクトを考案したダールとニガードも
同様の着想(SIMULAスタイルのクラスを抽象データ型として扱い、その継承機構で部分型を表現する)を得ている
> 昔はCUIからGUIに移行するときの規模に対応するためにOOPが誕生した。
それはアラン・ケイのメッセージングのOOPの話で、継承を前提とした現在主流の抽象データ型のOOPとは関係ないよ
念のためメッセージングのOOPというのは所謂「オブジェクトにメッセージを送って」とかいうお題目を唱えながら
設計・実装・実行・運用と幅広い局面における「可能な限りの決定の遅延」を徹底する考え方ね
http://squab.no-ip.com/collab/uploads/61/IsSoftwareEngineeringAnOxymoron.pdf
>>978
> そうなるともはや処理時間も通信状態も不明な他所のコンピュータで動いてる処理を
> シーケンシャルな一意の順番で行ってゆくというのが非現実的になるのが明白で
> そういった視点から「こういう処理をせよ」とクラス(独自の処理単位/物理的に別な機械)に命令したら
> その単位が他に依存しないで自律的に処理を行う「オブジェクト指向」が提唱された。
そんな「オブジェクト指向」の出自は初耳なんだけど誰が提唱したもの?
ちなみに抽象データ型のオブジェクト指向は、C with Classe(後にC++)のスウストラップのこちらの所謂 what-is 論文が有名
http://dl.acm.org/citation.cfm?id=624721
同時期にEiffelのメイヤー、抽象データ型のリスコフ、SIMULAでクラスとオブジェクトを考案したダールとニガードも
同様の着想(SIMULAスタイルのクラスを抽象データ型として扱い、その継承機構で部分型を表現する)を得ている
980デフォルトの名無しさん
2017/07/07(金) 12:01:56.23ID:xvg52mfm 困惑してるだけなら関数型言語の機能取り入れたりしないだろ。
その再利用とは別のオブジェクト指向ってどうなったんよ。
MVCとかMVVMじゃ無いよね?そんな昔じゃ無いし。
その再利用とは別のオブジェクト指向ってどうなったんよ。
MVCとかMVVMじゃ無いよね?そんな昔じゃ無いし。
981デフォルトの名無しさん
2017/07/07(金) 12:11:51.38ID:6QLBDLc9 出所とか歴史上の経緯とか大切なことなの?
982デフォルトの名無しさん
2017/07/07(金) 12:12:45.80ID:6QLBDLc9 それと「だれそれが提唱した〜」とか
983デフォルトの名無しさん
2017/07/07(金) 12:13:19.21ID:xvg52mfm >>979
そのsmalltalkやRubyのオブジェクト指向が関数型言語と同じ方向目指してるなって感じてて、でも今の所関数型言語のが相性が良いように思える。
そのsmalltalkやRubyのオブジェクト指向が関数型言語と同じ方向目指してるなって感じてて、でも今の所関数型言語のが相性が良いように思える。
984デフォルトの名無しさん
2017/07/07(金) 12:31:03.55ID:vHHwjjQx985デフォルトの名無しさん
2017/07/07(金) 12:32:20.58ID:U3HkjAD4986デフォルトの名無しさん
2017/07/07(金) 12:33:44.47ID:vHHwjjQx987デフォルトの名無しさん
2017/07/07(金) 12:35:07.48ID:vHHwjjQx インターフェイス、つまり型による契約プログラミングこそがオブジェクト指向の本質
988デフォルトの名無しさん
2017/07/07(金) 12:35:11.95ID:SENaJwbT >>972
あ〜深いヤツは見ててしんどいですね
ロジックの一元化を「このメソッドいろんなところで同じ処理するからまとめたよ!継承したら呼べるよ!」って感じで使ってる所だととても大変
振る舞いを一元化して異なる動作をさせたいメソッドのoverrideで使ってたら苦にはならないよ
手法としては存在するよね?って聞かれたら存在する
でも問題は設計であって継承ではないと考える
あ〜深いヤツは見ててしんどいですね
ロジックの一元化を「このメソッドいろんなところで同じ処理するからまとめたよ!継承したら呼べるよ!」って感じで使ってる所だととても大変
振る舞いを一元化して異なる動作をさせたいメソッドのoverrideで使ってたら苦にはならないよ
手法としては存在するよね?って聞かれたら存在する
でも問題は設計であって継承ではないと考える
989デフォルトの名無しさん
2017/07/07(金) 12:37:16.77ID:SENaJwbT990デフォルトの名無しさん
2017/07/07(金) 13:06:08.89ID:xvg52mfm >>986
ありがとうだけど、継承はともかくカプセル化は必要。
モジュールも広い意味でのカプセル化だからね。
それまで不要とは思わないし、副作用と縁のきれない手続き型言語にカプセル化ある種運命共同体。
ありがとうだけど、継承はともかくカプセル化は必要。
モジュールも広い意味でのカプセル化だからね。
それまで不要とは思わないし、副作用と縁のきれない手続き型言語にカプセル化ある種運命共同体。
991デフォルトの名無しさん
2017/07/07(金) 13:30:17.87ID:XBLDwFYK 結局どこまで行っても、ここで議論されてる事とは
「どう構造化し記述すべきなのか」なんである
「どう構造化し記述すべきなのか」なんである
992デフォルトの名無しさん
2017/07/07(金) 14:05:53.15ID:vHHwjjQx993デフォルトの名無しさん
2017/07/07(金) 14:06:56.46ID:vHHwjjQx オブジェクト指向っていうのは言わば関数型なんだよね
994デフォルトの名無しさん
2017/07/07(金) 14:08:59.90ID:vHHwjjQx 手続きをカプセル化するだけじゃただのモジュール指向手続き型
カプセル化が要らなくなるまで設計を洗練させること
これ即ちオブジェクトの正規化なり
カプセル化が要らなくなるまで設計を洗練させること
これ即ちオブジェクトの正規化なり
995デフォルトの名無しさん
2017/07/07(金) 14:43:00.99ID:G2hd19q1 無駄に正規化したところで、クラスの粒度、階層がバラバラになるからほどほとにしないと無駄だよ
996デフォルトの名無しさん
2017/07/07(金) 15:22:06.11ID:6QLBDLc9 こだわるポイントが不適当だな
997デフォルトの名無しさん
2017/07/07(金) 18:42:32.82ID:eVPhxI3P998デフォルトの名無しさん
2017/07/07(金) 19:12:56.87ID:8UX+Q+HA >>977
ごめん、ちょっと言い方間違えたは、別に部下として配属する
必要はないな。
あと、thisって何かイマイチしっくり来なかったんだけど、
「この」って解釈するからどういう意味なのかわからかったが、
「俺の」と解釈しほうがいいと思った。
つまり任意のパラメータを「俺のもの」として保持しておけば、
外部から「こいつの(xxさんの)」として呼び出せるって訳だ。
ごめん、ちょっと言い方間違えたは、別に部下として配属する
必要はないな。
あと、thisって何かイマイチしっくり来なかったんだけど、
「この」って解釈するからどういう意味なのかわからかったが、
「俺の」と解釈しほうがいいと思った。
つまり任意のパラメータを「俺のもの」として保持しておけば、
外部から「こいつの(xxさんの)」として呼び出せるって訳だ。
999デフォルトの名無しさん
2017/07/07(金) 19:32:27.33ID:6QLBDLc9 なにがなんでも日常とか物理的現実に結びつけなくたってええんやで
1000デフォルトの名無しさん
2017/07/07(金) 19:38:53.61ID:SENaJwbT10011001
Over 1000Thread このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
life time: 96日 3時間 8分 15秒
もう書けないので、新しいスレッドを立ててくださいです。。。
life time: 96日 3時間 8分 15秒
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 中国国防省が再反論 SNSで公開した音声とは“別の通報”で日本に訓練の時間や海域を通報したと主張 [夜のけいちゃん★]
- BreakingDown 前日会見で対戦予定選手から不意打ちビンタ→後頭部強打で失神した選手、くも膜下出血と報告「脳内に出血が発見され…★2 [Anonymous★]
- BreakingDown 前日会見で対戦予定選手から不意打ちビンタ→後頭部強打で失神した選手、くも膜下出血と報告「脳内に出血が発見され…」 [Anonymous★]
- フィンランド、ミスや国会議員つり目投稿 くり返されるアジア人差別 [蚤の市★]
- 【給食無償化】国が全額負担 自維公3党、近く合意へ★2 [ぐれ★]
- コメ「余っている」年明けに下落も? 大量の在庫が倉庫を圧迫、赤字の恐れ…業者「値下げするしか…」 ★3 [Hitzeschleier★]
- 【実況】博衣こよりのえちえち朝こよ🧪★2
- 劣等感の塊で生きるのが辛い
- 給食無償化、近く合意へ…全国民が毎年5000円負担する計算。これケンモジさんはどう思ってるの? [973343483]
- ディズニーって二作目でコケるじゃん?
- 元一流迷惑系ユーチューバー「パンダに頼る動物園もよくない。別にパンダがいなくても楽しめますから」 [309323212]
- 女だけど証拠うp
