カプセル化(英語:encapsulation)とは、オブジェクト指向を構成する概念の一つで、
オブジェクト内部のデータを隠蔽したり(データ隠蔽)、オブジェクトの振る舞いを隠蔽したり、
オブジェクトの実際の型を隠蔽したりすることをいう。
偏差値の低い学校向けの情報処理系教科書において「大変すばらしいものであり絶対に使うように」と大体的に宣伝された。
一方、カリフォルニア大学バークレー校の有識者を中心としたインターネットを作った人たちは「階層化の有害性」として
「絶対に使うな」としている。大雑把にいうと、その時は良くても、将来的な改修の際に隠蔽されたデータに
アクセスできないと解決できない問題が出てきて、結果的にデスマーチに陥るというのである。
オブジェクト指向の発案者であるアラン・ケイもコーディング規約(頭文字にアンダースコアを付けるなどの命名規則)で
縛る程度にすることを推奨しており、アラン・ケイが関わったオブジェクト指向プログラミング言語にはどれも「private」
という概念はない。
https://monobook.org/wiki/%E3%82%AB%E3%83%97%E3%82%BB%E3%83%AB%E5%8C%96
探検
オブジェクト指向ってクソじゃね?
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2018/08/24(金) 13:32:09.36ID:ifygL6bT2018/09/06(木) 08:26:13.84ID:abjuqq+M
2018/09/06(木) 08:28:15.97ID:abjuqq+M
2018/09/06(木) 08:31:32.42ID:abjuqq+M
構造化プログラムでゴトーが滅亡したようにオブジェクト指向にも構造化のブレイクスルーが生まれていい頃合いだと思うの
75デフォルトの名無しさん
2018/09/06(木) 12:51:58.13ID:ntAiYVJq オブジェクト指向って簡単な処理先に書いて難しい処理は後回しにする考え方でしょ
2018/09/06(木) 13:33:23.77ID:uUC4mFDs
2018/09/06(木) 13:46:11.74ID:abjuqq+M
インターフェースを切って実装を分離することを言ってるんじゃないか?
2018/09/06(木) 13:50:58.27ID:BY1c9tpo
そもそも、継承関係で隠蔽しちゃい合うのが問題なだけで、
インスタンス握り合うだけの仲なら、相手の陰部まで見に行く必要性なんて無いだろ。
インスタンス握り合うだけの仲なら、相手の陰部まで見に行く必要性なんて無いだろ。
2018/09/06(木) 23:36:20.94ID:OdtAawkS
2018/09/06(木) 23:37:17.79ID:OdtAawkS
2018/09/07(金) 08:35:51.18ID:avaKv6NM
2018/09/07(金) 08:40:25.09ID:avaKv6NM
責務ごとにクラスを作るのがどうして主流だよね?ってことですよ
2018/09/07(金) 09:19:04.85ID:avaKv6NM
責務ごとに分離したら凝集度が低下します
2018/09/07(金) 19:25:29.09ID:ZCXZkOYn
2018/09/07(金) 19:40:40.77ID:Nc+ifFiB
ボトムアップで設計したら結局最上位クラスが神クラス化しちゃうのは、アプリ層の設計が甘いんかな?
どうもUI部の設計は苦手だ。
どうもUI部の設計は苦手だ。
2018/09/07(金) 20:33:13.60ID:avaKv6NM
2018/09/07(金) 20:36:30.67ID:avaKv6NM
ドメインオブジェクトがドメインとしての振る舞いを持つのですから肥大化とは言いません、データと関わりのない振る舞いを持つわけではないんです
2018/09/07(金) 20:48:57.91ID:ZCXZkOYn
2018/09/07(金) 20:49:13.32ID:ZCXZkOYn
2018/09/07(金) 21:07:16.42ID:0j44DGgx
>>89
そんなバカな
行数でオブジェクトを捉えるべきじゃない
振る舞いがどこにあるべきかで考えないと
行数が増えたからオブジェクト分けましょうなんてのは
オブジェクト指向の理念に反する
データをカプセル化してデータに対する責務を持つのが
オブジェクトなんだよ
そんなバカな
行数でオブジェクトを捉えるべきじゃない
振る舞いがどこにあるべきかで考えないと
行数が増えたからオブジェクト分けましょうなんてのは
オブジェクト指向の理念に反する
データをカプセル化してデータに対する責務を持つのが
オブジェクトなんだよ
2018/09/07(金) 21:09:02.84ID:0j44DGgx
データに対する振る舞いが集まるんだから凝集度は高まるんです
2018/09/07(金) 21:12:47.16ID:0j44DGgx
オブジェクトが何かを考えないと行数で判断するという
前世紀のような事が起こるわけです
行数が多いからこのオブジェクトは頑張ってるんだな
と思ってしまうわけです
大きな間違いです、オブジェクト指向の根幹はカプセル化です
次に多態性、オブジェクトに適切なフルマがあって初めて
多態性を実現できます
前世紀のような事が起こるわけです
行数が多いからこのオブジェクトは頑張ってるんだな
と思ってしまうわけです
大きな間違いです、オブジェクト指向の根幹はカプセル化です
次に多態性、オブジェクトに適切なフルマがあって初めて
多態性を実現できます
2018/09/07(金) 21:15:03.24ID:Nc+ifFiB
皆が言ってることはもちろん分かる。
分かった上でViewのコートが大きくなりすぎて例えばC#ならついついpartial使ってファイル分けちゃう。
MVVMでも結局はViewか大きくなっちゃう。
いや、分かるよ。俺がViewの設計が下手っぴなのは認める。
分かった上でViewのコートが大きくなりすぎて例えばC#ならついついpartial使ってファイル分けちゃう。
MVVMでも結局はViewか大きくなっちゃう。
いや、分かるよ。俺がViewの設計が下手っぴなのは認める。
2018/09/07(金) 21:16:51.88ID:lg5TGvmQ
2018/09/07(金) 22:12:16.23ID:ZCXZkOYn
2018/09/07(金) 22:14:41.41ID:ZCXZkOYn
2018/09/07(金) 22:15:21.48ID:JescaW/f
つか、ワンオブジェクトワンファイルなんてルールは無いから。
98デフォルトの名無しさん
2018/09/07(金) 22:58:43.86ID:B/yxkRYZ このスレにいるような池沼が作らなければ
クラスライブラリも階層や種類で作るからな
低い階層に行けばいくほど単純な簡単な機能を提供するクラスになる
階層は完全に分離させて独立したライブラリにする
そして明確に種類の異なるプリミティブがある場合は
ライブラリを完全に分離させて独立したライブラリにする
その上にアプリケーションを実現するクラス群がのっかる
低学歴知恵遅れが作るとすべて同じ階層で同じ種類になる
クラスライブラリも階層や種類で作るからな
低い階層に行けばいくほど単純な簡単な機能を提供するクラスになる
階層は完全に分離させて独立したライブラリにする
そして明確に種類の異なるプリミティブがある場合は
ライブラリを完全に分離させて独立したライブラリにする
その上にアプリケーションを実現するクラス群がのっかる
低学歴知恵遅れが作るとすべて同じ階層で同じ種類になる
2018/09/08(土) 02:09:56.99ID:WAR6v8yR
クラスに階層があるなんて寝言は寝て言うべきだと思うの
100デフォルトの名無しさん
2018/09/08(土) 02:15:00.94ID:WAR6v8yR このクラスの責務は行数を減らす事ですとか上記の沙汰じゃないやろ
101デフォルトの名無しさん
2018/09/08(土) 02:18:28.54ID:j/6nk0eH 当然、低レベルな部分を実現するクラスライブラリと
アプリケーションが主に利用する中間層のクラスライブラリと
アプリケーション自体を記述するクラス群は
シロウトでもないかぎり完全に分離するからな
低レベルな部分を実現するクラスライブラリは
当然、中間層のクラスライブラリやアプリケーション自体を記述するクラス群を
参照することはまずない
アプリケーションが主に利用する中間層のクラスライブラリは
アプリケーション自体を記述するクラス群を参照することはまずない
低学歴知恵遅れが作ると酷い依存関係ができる
コレはオブジェクト指向関係なくライブラリの基本だからな
アプリケーションが主に利用する中間層のクラスライブラリと
アプリケーション自体を記述するクラス群は
シロウトでもないかぎり完全に分離するからな
低レベルな部分を実現するクラスライブラリは
当然、中間層のクラスライブラリやアプリケーション自体を記述するクラス群を
参照することはまずない
アプリケーションが主に利用する中間層のクラスライブラリは
アプリケーション自体を記述するクラス群を参照することはまずない
低学歴知恵遅れが作ると酷い依存関係ができる
コレはオブジェクト指向関係なくライブラリの基本だからな
102デフォルトの名無しさん
2018/09/08(土) 04:34:33.80ID:xpw/+eIi103デフォルトの名無しさん
2018/09/08(土) 09:24:01.98ID:t/+GvP7Y × このクラスの責務は行数を減らす事です
○ fooクラスに別のクラスに責務を分離できる処理を見つけたので分離しました。
その結果fooクラスの行数が減りました。
「行数を減らす」は「責務」ではない。「責務」を分離することで
得られる結果(メリット)の一つだ
○ fooクラスに別のクラスに責務を分離できる処理を見つけたので分離しました。
その結果fooクラスの行数が減りました。
「行数を減らす」は「責務」ではない。「責務」を分離することで
得られる結果(メリット)の一つだ
104デフォルトの名無しさん
2018/09/08(土) 12:06:19.78ID:GaM457i+ >70のサイト読んでると
プログラミングでどの様にしてプログラミングするか
というのと
実際のシステム要件なんかからどうやって設計するか
というのがごっちゃに書かれている感じがする
プログラミングでどの様にしてプログラミングするか
というのと
実際のシステム要件なんかからどうやって設計するか
というのがごっちゃに書かれている感じがする
105デフォルトの名無しさん
2018/09/08(土) 12:33:05.14ID:1I6Cu01I >>103
鋭い
鋭い
106デフォルトの名無しさん
2018/09/08(土) 12:41:12.60ID:j/6nk0eH 責務とアホみたいなこといってるわ
組織でたとえるならこうなるからな
経営者クラス 社員をこき使う
↓
社員クラス ← 派遣をこき使う(職階ごとの複数の中間層)
↓
派遣クラス ← キミラが担当するような低レベルな部分の単純作業(つまりキミラ)
派遣は社員の作業も役員の作業もしない
社員は役員の作業はしない
行数が多いのは
作業を整理して作業を手順化して
派遣にうまく単純作業を割り当てれてないのと同じだからな
つまり、人に仕事させないと自分の作業が増える
キミラは派遣だからな、そういう作業はできないのは分かる
作業ミス(例外)が発生してスルーし続けてたら上までいくからな
組織でたとえるならこうなるからな
経営者クラス 社員をこき使う
↓
社員クラス ← 派遣をこき使う(職階ごとの複数の中間層)
↓
派遣クラス ← キミラが担当するような低レベルな部分の単純作業(つまりキミラ)
派遣は社員の作業も役員の作業もしない
社員は役員の作業はしない
行数が多いのは
作業を整理して作業を手順化して
派遣にうまく単純作業を割り当てれてないのと同じだからな
つまり、人に仕事させないと自分の作業が増える
キミラは派遣だからな、そういう作業はできないのは分かる
作業ミス(例外)が発生してスルーし続けてたら上までいくからな
107デフォルトの名無しさん
2018/09/08(土) 12:52:36.37ID:j/6nk0eH 例えば扱うビジネスの領域が違えば
部門を分けることになる
会社に複数の部門があっても一つの会社だからな
種類で分けるというのはそういうことになる
キミラみたいな一種類の単純作業しかしてないヤツラには関係ない
部門を分けることになる
会社に複数の部門があっても一つの会社だからな
種類で分けるというのはそういうことになる
キミラみたいな一種類の単純作業しかしてないヤツラには関係ない
108デフォルトの名無しさん
2018/09/08(土) 13:03:07.35ID:j/6nk0eH というわけでな
キミラは刺身にタンポポのせる作業に戻りなさい
キミラにはムリ
キミラは刺身にタンポポのせる作業に戻りなさい
キミラにはムリ
109デフォルトの名無しさん
2018/09/08(土) 13:03:32.85ID:t/+GvP7Y キミラには・・・キミラには・・・
110デフォルトの名無しさん
2018/09/08(土) 13:11:07.86ID:j/6nk0eH あ、オマエは刺身の醤油入れに醤油つめる作業だったか
いや、醤油入れのキャップをしめる作業だったか
ともかく、キミの細かい作業なんかオレは知らないからな
作業ミスが発生したらちゃんと報告するようにな
まずキミの直属の上長にだ
分かった?
いや、醤油入れのキャップをしめる作業だったか
ともかく、キミの細かい作業なんかオレは知らないからな
作業ミスが発生したらちゃんと報告するようにな
まずキミの直属の上長にだ
分かった?
111デフォルトの名無しさん
2018/09/08(土) 13:22:45.36ID:t/+GvP7Y キミラは下で俺が上だ・・・上なんだ・・・
112デフォルトの名無しさん
2018/09/08(土) 14:59:23.20ID:1I6Cu01I >>106
それだと上位が下位に依存して
組織が硬直化する
インタフェスを挟んで依存関係を逆転させる
(経営者クラス → 社員インタフェス) ← (社員クラス → 派遣インタフェス) ← 派遣クラス
これがInversion Of Control
それだと上位が下位に依存して
組織が硬直化する
インタフェスを挟んで依存関係を逆転させる
(経営者クラス → 社員インタフェス) ← (社員クラス → 派遣インタフェス) ← 派遣クラス
これがInversion Of Control
113デフォルトの名無しさん
2018/09/08(土) 15:00:32.82ID:t/+GvP7Y114デフォルトの名無しさん
2018/09/08(土) 15:11:58.88ID:1I6Cu01I Inversion of Controlパターンでコンポーネント間の結びつきを弱める:CodeZine(コードジン)
https://codezine.jp/article/detail/60
こことか
https://codezine.jp/article/detail/60
こことか
115デフォルトの名無しさん
2018/09/08(土) 15:40:47.46ID:j/6nk0eH ただのリフレクションやんけ
昔のウンコMFCのコントロールのリフレクションとほとんど同じ
結局親のコントロールに大量のリフレクションのコードを埋め込むことになる
コントロールごとに処理記述するほうがはるかに分かりやすい
昔のウンコMFCのコントロールのリフレクションとほとんど同じ
結局親のコントロールに大量のリフレクションのコードを埋め込むことになる
コントロールごとに処理記述するほうがはるかに分かりやすい
116デフォルトの名無しさん
2018/09/08(土) 15:43:54.64ID:j/6nk0eH ×結びつきを弱める
○もともと末端ではなにもしない処理にする
○もともと末端ではなにもしない処理にする
117デフォルトの名無しさん
2018/09/08(土) 15:51:53.40ID:1I6Cu01I 何もしないだと・・・
じゃあたんぽぽ担当は何のために
じゃあたんぽぽ担当は何のために
118デフォルトの名無しさん
2018/09/08(土) 16:07:40.80ID:j/6nk0eH いちいちタンポポ載せてる作業経過報告はいらない
作業の補助とか、いちいち次になにをするかとかとか指示はしないからな
タンポポが地面に落ちたとかこのタンポポのハナ小さいとか
そういう報告もいらない
捨てときなさい
それぐらい分かるだろう
タンポポが足りなくなりそうになったら
この台帳に書いときなさい
コレだけはたまに見といてやるからな
作業の補助とか、いちいち次になにをするかとかとか指示はしないからな
タンポポが地面に落ちたとかこのタンポポのハナ小さいとか
そういう報告もいらない
捨てときなさい
それぐらい分かるだろう
タンポポが足りなくなりそうになったら
この台帳に書いときなさい
コレだけはたまに見といてやるからな
119デフォルトの名無しさん
2018/09/08(土) 16:11:08.60ID:1I6Cu01I 台帳によって疎結合になるわけですね
120デフォルトの名無しさん
2018/09/08(土) 16:11:29.17ID:1I6Cu01I 台帳オブジェクトの発見、これがドメイン分析
121デフォルトの名無しさん
2018/09/09(日) 00:27:26.13ID:fJdKrV9d タンポポの弾幕
122デフォルトの名無しさん
2018/09/09(日) 01:14:12.52ID:0bXk8YdS DBのテーブル数や列数が少なくて
テーブル設計が洗練されているならオブジェクト指向っていいんだろうね。
でも現実のシステム考えるとアホみたいにテーブルの数が多くて
アホみたいに列の数が多くて、整理もされていないわけじゃん。
そしてアホみたいに文言の定数定義とかも多い。
そうすると、階層構造作ってレイヤの数を増やして
結果的1つの機能を達成するのに作るファイルの数が増えるほど、
それらのアホみたいに多くて長い列名をレイヤの数だけ書きまくる
みたいな苦行が待っているわけじゃん。
少しでも項目名の変更があったらそれらのファイル部書き換えたり
クラス名に変更がありでもしたらファイル名やフォルダ名とか、
テーブル名、import文とか全部書き換えになるわけじゃん。
それにオブジェクト指向でどう頑張っても最終的に値を
埋め込む画面が汚くなるのは避けることができない。
そうするとオブジェクト指向設計で無理にファイルを分けて
構造化するリスクってやばいと思う。
そうなると少ないファイルオブジェクト指向クソ喰らえみたいな勢いで
構造化プログラミングだけでゴリッと書くほうが早いと思うんだよね。
命名規則もいちいち気を使わないで勢いで書くんだよ。
ファイルの中関数定義だらけになるが、
その中で似たような処理の関数見つけてきて、複製して、
今必要な処理ができるように改変して新たな関数を作る。これで十分だ。
1ファイルの中で完結しているんだから不具合は波及しない。
ファイルをまたいでimportして無理にファイルの昨日使う必要性なんて
どこにも有りはしないだろ。ファイルの頭からimportやextend inplementだらけ
とか吐き気がするよ。
オブジェクト指向ってファイル間の関連性追ったり、
ファイル構造を含んだデバッグの苦痛は無視してんのか?って思う。
テーブル設計が洗練されているならオブジェクト指向っていいんだろうね。
でも現実のシステム考えるとアホみたいにテーブルの数が多くて
アホみたいに列の数が多くて、整理もされていないわけじゃん。
そしてアホみたいに文言の定数定義とかも多い。
そうすると、階層構造作ってレイヤの数を増やして
結果的1つの機能を達成するのに作るファイルの数が増えるほど、
それらのアホみたいに多くて長い列名をレイヤの数だけ書きまくる
みたいな苦行が待っているわけじゃん。
少しでも項目名の変更があったらそれらのファイル部書き換えたり
クラス名に変更がありでもしたらファイル名やフォルダ名とか、
テーブル名、import文とか全部書き換えになるわけじゃん。
それにオブジェクト指向でどう頑張っても最終的に値を
埋め込む画面が汚くなるのは避けることができない。
そうするとオブジェクト指向設計で無理にファイルを分けて
構造化するリスクってやばいと思う。
そうなると少ないファイルオブジェクト指向クソ喰らえみたいな勢いで
構造化プログラミングだけでゴリッと書くほうが早いと思うんだよね。
命名規則もいちいち気を使わないで勢いで書くんだよ。
ファイルの中関数定義だらけになるが、
その中で似たような処理の関数見つけてきて、複製して、
今必要な処理ができるように改変して新たな関数を作る。これで十分だ。
1ファイルの中で完結しているんだから不具合は波及しない。
ファイルをまたいでimportして無理にファイルの昨日使う必要性なんて
どこにも有りはしないだろ。ファイルの頭からimportやextend inplementだらけ
とか吐き気がするよ。
オブジェクト指向ってファイル間の関連性追ったり、
ファイル構造を含んだデバッグの苦痛は無視してんのか?って思う。
123デフォルトの名無しさん
2018/09/09(日) 02:14:14.22ID:rd2vglUK 今北産業
124デフォルトの名無しさん
2018/09/09(日) 06:49:20.59ID:O317ycPa >>122
簡単に言うと短期間しか使わないシステムなら
構造化+DBで組むのも良いと思うけど
長期間使う大規模なシステムは
オブジェクト指向で組んだ方が
保守まで含めた全体のコストは下がる
だから企業もOOを採用している
簡単に言うと短期間しか使わないシステムなら
構造化+DBで組むのも良いと思うけど
長期間使う大規模なシステムは
オブジェクト指向で組んだ方が
保守まで含めた全体のコストは下がる
だから企業もOOを採用している
125デフォルトの名無しさん
2018/09/09(日) 07:29:49.35ID:QdIWFdtA >>122
それオブジェクト指向の問題じゃなく、システムの基本設計が破綻してるだけ。
それオブジェクト指向の問題じゃなく、システムの基本設計が破綻してるだけ。
126デフォルトの名無しさん
2018/09/09(日) 07:53:15.67ID:B5kEXEZS >オブジェクト指向ってファイル間の関連性追ったり、
>ファイル構造を含んだデバッグの苦痛は無視してんのか?って思う。
それはその通りだと思う
ただ関連性はプログラムではなくてクラス構造図やオブジェクト生成手順図みたいなので判断するもので所謂上から下に辿って見て行く物でも辿って出きる物でも無い
オブジェクト指向プログラミングをすると設計図をちゃんと描いてから作ってる
って感じがするし
ただまともに且つ効果的に作るのは難しくて解っていない人が無理やり作ってしまうと反って酷くなる
そういう風にしか作れなかったりそういう風な人しか居ないならオブジェクト指向プログラミングは止めておいた方が良いそういう風な所はcobolみたいなのが一番向いていると思う
ただしオブジェクト指向プログラミングに効果的な使い方が有り実際に行われているのでオブジェクト指向プログラミングその物がおかしいというのは間違い
多くの人が
使えるか?
使うべきか?
となるとそれは無理なのかなぁ
とは思う
どっちかって言うと解らないなら無理して使うなという物だと思う
解らない人が有る程度居る?沢山居る?ということならプロジェクトで使わないという判断する
というのが重要なんだと思う
解らない人には苦痛でしかないし解らない人が作った物は本人にも他に人にも迷惑でしかないだろうなぁ
>ファイル構造を含んだデバッグの苦痛は無視してんのか?って思う。
それはその通りだと思う
ただ関連性はプログラムではなくてクラス構造図やオブジェクト生成手順図みたいなので判断するもので所謂上から下に辿って見て行く物でも辿って出きる物でも無い
オブジェクト指向プログラミングをすると設計図をちゃんと描いてから作ってる
って感じがするし
ただまともに且つ効果的に作るのは難しくて解っていない人が無理やり作ってしまうと反って酷くなる
そういう風にしか作れなかったりそういう風な人しか居ないならオブジェクト指向プログラミングは止めておいた方が良いそういう風な所はcobolみたいなのが一番向いていると思う
ただしオブジェクト指向プログラミングに効果的な使い方が有り実際に行われているのでオブジェクト指向プログラミングその物がおかしいというのは間違い
多くの人が
使えるか?
使うべきか?
となるとそれは無理なのかなぁ
とは思う
どっちかって言うと解らないなら無理して使うなという物だと思う
解らない人が有る程度居る?沢山居る?ということならプロジェクトで使わないという判断する
というのが重要なんだと思う
解らない人には苦痛でしかないし解らない人が作った物は本人にも他に人にも迷惑でしかないだろうなぁ
127デフォルトの名無しさん
2018/09/10(月) 23:59:27.90ID:R+xXPRjE オブジェクト指向がよくわからんド素人俺にはlinqは感動した。
web系フレームワークの真似事+継承だらけのコードのメンテは地獄だった。素人が手をだしたらアカン代物だわ。
web系フレームワークの真似事+継承だらけのコードのメンテは地獄だった。素人が手をだしたらアカン代物だわ。
128デフォルトの名無しさん
2018/09/17(月) 13:28:16.75ID:hCpxPlj7 ヤフーのブログのサイトで初心者にはわかりやすいブログを発見したよ。
https://blogs.yahoo.co.jp/kamyu_2010/35417803.html
https://blogs.yahoo.co.jp/kamyu_2010/35417803.html
129デフォルトの名無しさん
2018/09/17(月) 13:30:49.79ID:27GPeyCI >>128
なんか気持ち悪い、アスペっぽい
なんか気持ち悪い、アスペっぽい
130デフォルトの名無しさん
2018/09/17(月) 13:30:59.69ID:6+Wt0ENU またお前か
131デフォルトの名無しさん
2018/09/17(月) 22:41:39.72ID:AYOVQ736 >>130
なんか気持ち悪い、糖質っぽい
なんか気持ち悪い、糖質っぽい
132デフォルトの名無しさん
2018/09/19(水) 05:57:49.26ID:zGAoAQgA133デフォルトの名無しさん
2018/09/19(水) 19:25:49.89ID:3+BPTz35 >>125
そらーオブジェクト指向はオブジェクト使うからオブジェクトの構造をちゃんと綺麗に作れば問題は起きないな
オブジェクトの構造と言えばオブジェクト同士の繋がり方関連性も含まれるだろうからそのまま全体像にも繋がるから個々のオブジェクトさえちゃんと作れば全部が良くなるとも言えるはず
問題はシステムの基本設計が破錠しないように作ればいい、ということではなくて破錠しやすいという所にあるような
そらーオブジェクト指向はオブジェクト使うからオブジェクトの構造をちゃんと綺麗に作れば問題は起きないな
オブジェクトの構造と言えばオブジェクト同士の繋がり方関連性も含まれるだろうからそのまま全体像にも繋がるから個々のオブジェクトさえちゃんと作れば全部が良くなるとも言えるはず
問題はシステムの基本設計が破錠しないように作ればいい、ということではなくて破錠しやすいという所にあるような
134デフォルトの名無しさん
2018/09/19(水) 23:52:24.34ID:YoDbSZZU >>133
知ったかツマラン。
知ったかツマラン。
135デフォルトの名無しさん
2018/09/20(木) 00:25:31.99ID:UYyYb6vq >>134
そやな。俺が知ってる唯一の情報がオブジェクト指向はシステムの基本設計が破綻するってだけだからな。
そやな。俺が知ってる唯一の情報がオブジェクト指向はシステムの基本設計が破綻するってだけだからな。
136デフォルトの名無しさん
2018/09/20(木) 08:07:35.90ID:v1EqyHAs137デフォルトの名無しさん
2018/09/20(木) 17:06:26.63ID:UYyYb6vq138デフォルトの名無しさん
2018/09/20(木) 19:40:11.95ID:v1EqyHAs >>137
隠蔽のコスパとか言うバカ乙 w
隠蔽のコスパとか言うバカ乙 w
139デフォルトの名無しさん
2018/09/21(金) 19:22:25.43ID:+zpU6K4O オブジェクト指向は複雑な構造を構築するわけだから
別に破綻はしないだろう
むしろ見た目は良い
別に破綻はしないだろう
むしろ見た目は良い
140デフォルトの名無しさん
2018/09/21(金) 20:28:00.82ID:qgyq16h9 オブジェクト指向の弱点はクラスとクラス間の関係を設計しないといけないこと
141デフォルトの名無しさん
2018/09/21(金) 20:46:48.28ID:qgyq16h9 小規模ならいいが大規模だと設計必須
とりあえず書き始めると最後に詰まるのがオブジェクト指向
小っちゃいパーツを作ってって最後に組み合わせるとき全然組み合わなかったり
つなぎ目の形が合わないのがオブジェクト指向
普通は小さいパーツが出来てるならある程度楽できるはずなのに逆に苦しくなる
本当におかしい
とりあえず書き始めると最後に詰まるのがオブジェクト指向
小っちゃいパーツを作ってって最後に組み合わせるとき全然組み合わなかったり
つなぎ目の形が合わないのがオブジェクト指向
普通は小さいパーツが出来てるならある程度楽できるはずなのに逆に苦しくなる
本当におかしい
142デフォルトの名無しさん
2018/09/21(金) 20:51:36.57ID:qgyq16h9 クラスの関係の設計を軽減するためにクラスには最低限の機能しか実装しないようになっていく
インターフェイスを考えた上の設計がないと後で詰まる
当たり前に思ってるけどそれはオブジェクト指向の限界というか弊害
インターフェイスを考えた上の設計がないと後で詰まる
当たり前に思ってるけどそれはオブジェクト指向の限界というか弊害
143デフォルトの名無しさん
2018/09/22(土) 08:52:06.62ID:seN9Vjts つまりクラス間の関係を排除して、Mix-inだけできるようになればいいのかな
144デフォルトの名無しさん
2018/09/22(土) 09:44:45.27ID:jtQ8570T >>140
境界定義なんて、モノリシックアプリでも必須なんだが?
その認識もないままオブジェクト指向とかマイクロサービスに手を出すとグダる。
開発チームを苦しめるマイクロサービス(翻訳)
https://techracho.bpsinc.jp/hachi8833/2018_01_29/51135
境界定義なんて、モノリシックアプリでも必須なんだが?
その認識もないままオブジェクト指向とかマイクロサービスに手を出すとグダる。
開発チームを苦しめるマイクロサービス(翻訳)
https://techracho.bpsinc.jp/hachi8833/2018_01_29/51135
145デフォルトの名無しさん
2018/09/22(土) 09:58:06.00ID:LHC7cNdc146デフォルトの名無しさん
2018/09/22(土) 14:09:59.67ID:ycLOp2uz147デフォルトの名無しさん
2018/09/22(土) 15:20:24.84ID:LHC7cNdc >>146
そりゃ大規模プログラムをメンテナンス性あげて作ろうとしたら
オブジェクト指向に限らず、考えなきゃいけないことだろな。
でも破綻していいなら、別に抽象的間接的に作らなくていい。
小さなツール程度ならゴットクラスで破綻状態でもなんとかできるだろうさ
そういう点で、オブジェクト指向の限界でも弊害でも何でも無い
そりゃ大規模プログラムをメンテナンス性あげて作ろうとしたら
オブジェクト指向に限らず、考えなきゃいけないことだろな。
でも破綻していいなら、別に抽象的間接的に作らなくていい。
小さなツール程度ならゴットクラスで破綻状態でもなんとかできるだろうさ
そういう点で、オブジェクト指向の限界でも弊害でも何でも無い
148デフォルトの名無しさん
2018/09/23(日) 01:13:41.68ID:MlhnYRcx >>147
いや俺の言う破綻てのは別にオブジェクトオンリーにこだわって
細かいとこをクロージャで逃げたり、その場しのぎ的に小さいオブジェクトで茶を濁すのもダメって意味じゃないんよ
小さいオブジェクトならオブジェクト同士やシステムが密結合になりえないだろうしな
オブジェクト指向の問題や破綻てのはやはし密結合の時にだけ起こるな
いや俺の言う破綻てのは別にオブジェクトオンリーにこだわって
細かいとこをクロージャで逃げたり、その場しのぎ的に小さいオブジェクトで茶を濁すのもダメって意味じゃないんよ
小さいオブジェクトならオブジェクト同士やシステムが密結合になりえないだろうしな
オブジェクト指向の問題や破綻てのはやはし密結合の時にだけ起こるな
149デフォルトの名無しさん
2018/09/23(日) 04:48:40.07ID:N8r2Gw6d > オブジェクト指向の問題や破綻てのはやはし密結合の時にだけ起こるな
因果関係が逆
密結合の時・・・問題や破綻が起きる(オブジェクト指向に限らない)
話はこれだけだろう?単純だろうが
因果関係が逆
密結合の時・・・問題や破綻が起きる(オブジェクト指向に限らない)
話はこれだけだろう?単純だろうが
150デフォルトの名無しさん
2018/09/23(日) 10:01:28.60ID:y+eZw7HP 普通に組めばいいじゃん
151デフォルトの名無しさん
2018/09/23(日) 11:37:45.64ID:0vXeudiz >>149
おまえめちゃめちゃバカやなw
おまえめちゃめちゃバカやなw
152デフォルトの名無しさん
2018/09/23(日) 12:09:34.69ID:loi8GnJQ まあオブジェクト指向は密結合を観察する際の一つの指針にはなるかな。
〜指向全般に言えるけれど、結局は一つの指標みたいなもんで
指標上げることが目的になったらクソになるのは当たり前だよね。
〜指向全般に言えるけれど、結局は一つの指標みたいなもんで
指標上げることが目的になったらクソになるのは当たり前だよね。
153デフォルトの名無しさん
2018/09/23(日) 12:29:12.02ID:0vXeudiz バカすぎて意味がつながっとらんw
154デフォルトの名無しさん
2018/09/23(日) 15:43:38.58ID:w6QfJYdi オブジェクト指向に継承って要る?
もともとのオブジェクト指向の発想からすれば、別に無くてもいいっていうか、むしろ邪魔じゃね?
もともとのオブジェクト指向の発想からすれば、別に無くてもいいっていうか、むしろ邪魔じゃね?
155デフォルトの名無しさん
2018/09/23(日) 16:17:15.71ID:NWkg7eaT >>154
継承でコードを書く量を減らせるってのはあるが、他の仕組みで代わりになるなら無くても良い
継承でコードを書く量を減らせるってのはあるが、他の仕組みで代わりになるなら無くても良い
156デフォルトの名無しさん
2018/09/23(日) 16:31:30.62ID:NWkg7eaT ああでもルートクラスのメソッドを全部で使えるってのはでかいかなあ
157デフォルトの名無しさん
2018/09/23(日) 16:37:33.42ID:MlhnYRcx >>149
ちゃうねん
複雑で大規模なモノは何で組もうが問題や破綻が起きやすくなる、って話と
オブジェクト指向は複雑で 大規模なモノを作ると破綻する、ってのは意味が違う
何故ならオブジェクト指向そのものが大規模で複雑なモノを作るため”だけ”の物だからよ。話の流れで言うと前者により後者が悪質な形で発動する
ただ当然理想論言えば問題を元々起こさなきゃいいっちゃいい話よ理想を言えば
ちゃうねん
複雑で大規模なモノは何で組もうが問題や破綻が起きやすくなる、って話と
オブジェクト指向は複雑で 大規模なモノを作ると破綻する、ってのは意味が違う
何故ならオブジェクト指向そのものが大規模で複雑なモノを作るため”だけ”の物だからよ。話の流れで言うと前者により後者が悪質な形で発動する
ただ当然理想論言えば問題を元々起こさなきゃいいっちゃいい話よ理想を言えば
158デフォルトの名無しさん
2018/09/23(日) 16:50:39.86ID:N8r2Gw6d > 何故ならオブジェクト指向そのものが大規模で複雑なモノを作るため”だけ”の物だからよ。
前提が間違っているから話にならん。
まず標準ライブラリの時点ですでに大規模で複雑
それが隠蔽されてるから単純に見えるってことに気づいていない
大規模で複雑なものを作るためだけのものだからというのなら、
ほとんどのものが大規模で複雑なんだから、オブジェクト指向を
使うのは当然ということになる
そして隠蔽されている部分は無視するという話なら、(オブジェクト指向の)
標準ライブラリを使うだけの簡単なコードは作れる
例えば、Rubyでprint "hello world"と書いただけでもオブジェクト指向が使われてる
オブジェクト指向であっても、小規模で単純なものを作れるものである証拠
前提が間違っているから話にならん。
まず標準ライブラリの時点ですでに大規模で複雑
それが隠蔽されてるから単純に見えるってことに気づいていない
大規模で複雑なものを作るためだけのものだからというのなら、
ほとんどのものが大規模で複雑なんだから、オブジェクト指向を
使うのは当然ということになる
そして隠蔽されている部分は無視するという話なら、(オブジェクト指向の)
標準ライブラリを使うだけの簡単なコードは作れる
例えば、Rubyでprint "hello world"と書いただけでもオブジェクト指向が使われてる
オブジェクト指向であっても、小規模で単純なものを作れるものである証拠
159デフォルトの名無しさん
2018/09/23(日) 17:11:55.75ID:MlhnYRcx >>158
オブジェクト指向言語の標準ライブラリとか1番破綻しないオブジェクト指向のパターンじゃないか?
そりゃ全てのオブジェクト指向で作った物が全て破綻することはないだろう
大規模に向いてるオブジェクト指向をあえて小規模なもの作るに都合いいから流用するのはいい事だろう。個人的には自分で作ったクラスを多数のところで使い回してるならそれぞれ小規模でも全体でみたら中、大規模じゃんってなる所はあるけども
とわいえ、それでもやっぱりオブジェクト指向は大規模なものの為”だけ”にあって、そのため”だけ”の機能があって、そのせいで破綻するってのが俺の考えよ
オブジェクト指向言語の標準ライブラリとか1番破綻しないオブジェクト指向のパターンじゃないか?
そりゃ全てのオブジェクト指向で作った物が全て破綻することはないだろう
大規模に向いてるオブジェクト指向をあえて小規模なもの作るに都合いいから流用するのはいい事だろう。個人的には自分で作ったクラスを多数のところで使い回してるならそれぞれ小規模でも全体でみたら中、大規模じゃんってなる所はあるけども
とわいえ、それでもやっぱりオブジェクト指向は大規模なものの為”だけ”にあって、そのため”だけ”の機能があって、そのせいで破綻するってのが俺の考えよ
160デフォルトの名無しさん
2018/09/23(日) 17:22:45.03ID:N8r2Gw6d >>159
だからオブジェクト指向で小規模なものを作る例あげたじゃん。
馬鹿なの?
大規模なら破綻するのは、オブジェクト指向で無くても同じ
つまりお前の理屈は
オブジェクト指向・・・小規模は作れない、大規模は作れる
???指向・・・小規模は作れる、大規模も作れる
って言ってるだけでしょ
で大規模であれば、破綻するのはどちらも同じなんだから
大規模に置いてはオブジェクト指向も???指向も変わらない
だからオブジェクト指向で、小規模は作れないと言ってるだけだよね?
(実際にはオブジェクト指向で小規模なものが作れる)
だからオブジェクト指向で小規模なものを作る例あげたじゃん。
馬鹿なの?
大規模なら破綻するのは、オブジェクト指向で無くても同じ
つまりお前の理屈は
オブジェクト指向・・・小規模は作れない、大規模は作れる
???指向・・・小規模は作れる、大規模も作れる
って言ってるだけでしょ
で大規模であれば、破綻するのはどちらも同じなんだから
大規模に置いてはオブジェクト指向も???指向も変わらない
だからオブジェクト指向で、小規模は作れないと言ってるだけだよね?
(実際にはオブジェクト指向で小規模なものが作れる)
161デフォルトの名無しさん
2018/09/23(日) 17:45:57.32ID:cRG95Xcq この原則さえ守れば破綻は回避できる
大体の大きな問題は起きなくなる
@公開インタフェースは可能な限り少なくする
A原則として、よほど適切な理由がないかぎり、可能な限り継承よりコンポジション使う
B下位階層(ここでの階層は>>101>>106の意味)のクラスが上位階層のクラスのインターフェースに絶対に直接アクセスしてはいけない
※ 当然、下位クラスが上位クラスのインターフェースを直接呼びだすようなリフレクションは禁止
C下位階層のインスタンスが非同期で上位のインスタンスに処理を依頼したい状況が発生した場合(可能な限りこんな状況が起きる設計は当然避けるべき)、
処理のやりとりはメッセージキューで行い、可能な限り少ない回数で簡潔なメッセージを用いて簡単に完結できるようにする、複雑なメッセージシーケンスも禁止
(コレは並立するインスタンス間でも同じ)
D同じ階層に並立するインスタンスをムダに乱立させるのは当然禁止
コンポジションとメッセージシーケンス、クラスの階層(ここでの階層は>>101>>106の意味)、インスタンスの生存期間さえ
ドキュメントで適切におさえることができる状態になっていれば
問題やエンハンスが発生しても持続可能対応できる
大体の大きな問題は起きなくなる
@公開インタフェースは可能な限り少なくする
A原則として、よほど適切な理由がないかぎり、可能な限り継承よりコンポジション使う
B下位階層(ここでの階層は>>101>>106の意味)のクラスが上位階層のクラスのインターフェースに絶対に直接アクセスしてはいけない
※ 当然、下位クラスが上位クラスのインターフェースを直接呼びだすようなリフレクションは禁止
C下位階層のインスタンスが非同期で上位のインスタンスに処理を依頼したい状況が発生した場合(可能な限りこんな状況が起きる設計は当然避けるべき)、
処理のやりとりはメッセージキューで行い、可能な限り少ない回数で簡潔なメッセージを用いて簡単に完結できるようにする、複雑なメッセージシーケンスも禁止
(コレは並立するインスタンス間でも同じ)
D同じ階層に並立するインスタンスをムダに乱立させるのは当然禁止
コンポジションとメッセージシーケンス、クラスの階層(ここでの階層は>>101>>106の意味)、インスタンスの生存期間さえ
ドキュメントで適切におさえることができる状態になっていれば
問題やエンハンスが発生しても持続可能対応できる
162デフォルトの名無しさん
2018/09/23(日) 19:29:44.09ID:y+eZw7HP オブジェクト指向にメリットなんて無いからね
163デフォルトの名無しさん
2018/09/23(日) 20:20:35.62ID:MlhnYRcx >>160
そりゃ作れないなんて言ってないがな。
「オブジェクト指向は大規模なモノを作る為だけにある」って話であって「オブジェクト指向は小規模なモノは絶対に作れない」とはならんからな
ただオブジェクト指向で小規模なモノ作ったらデータをオブジェクトでラッピングしやすいてのがあるけど
あれ完全に全くの偶然でデータをオブジェクトにまとめるのがオブジェクト指向の本丸じゃないように、オブジェクト指向の本丸ではないサブシステムが運良くそこにハマったってだけで
特にそこもオブジェクト指向は大規模なモノを作る為”だけ”にあるってのは意味は変わってないからな
俺が言ってるのは一般的にモノが複雑になれば破綻しやすいという話ではなくて
、”その上で更に”オブジェクト指向は独特の破綻を招くって話であって
そりゃ作れないなんて言ってないがな。
「オブジェクト指向は大規模なモノを作る為だけにある」って話であって「オブジェクト指向は小規模なモノは絶対に作れない」とはならんからな
ただオブジェクト指向で小規模なモノ作ったらデータをオブジェクトでラッピングしやすいてのがあるけど
あれ完全に全くの偶然でデータをオブジェクトにまとめるのがオブジェクト指向の本丸じゃないように、オブジェクト指向の本丸ではないサブシステムが運良くそこにハマったってだけで
特にそこもオブジェクト指向は大規模なモノを作る為”だけ”にあるってのは意味は変わってないからな
俺が言ってるのは一般的にモノが複雑になれば破綻しやすいという話ではなくて
、”その上で更に”オブジェクト指向は独特の破綻を招くって話であって
164デフォルトの名無しさん
2018/09/23(日) 21:48:23.69ID:N8r2Gw6d >>163
あー、わかったわかった、つまりこういうことだろ?
墜落事故は飛行機特有の問題だ
自動車は飛べないから墜落自体ありえない
自動車で遠くにいくなら時間はかかるし
距離も長いから事故の確率も上がるし大変だが
飛べないから墜落事故は起きないのだ
あー、わかったわかった、つまりこういうことだろ?
墜落事故は飛行機特有の問題だ
自動車は飛べないから墜落自体ありえない
自動車で遠くにいくなら時間はかかるし
距離も長いから事故の確率も上がるし大変だが
飛べないから墜落事故は起きないのだ
165デフォルトの名無しさん
2018/09/23(日) 21:50:15.95ID:N8r2Gw6d そう主張することで、飛行機の何を否定しているのかわからんのと
どうように、オブジェクト指向の何を否定しているのかわからんがなw
どうように、オブジェクト指向の何を否定しているのかわからんがなw
166デフォルトの名無しさん
2018/09/23(日) 21:51:15.19ID:0vXeudiz おまえら破綻しすぎじゃね?w
どうやったらそんなに破綻を量産できんねんw
どうやったらそんなに破綻を量産できんねんw
167デフォルトの名無しさん
2018/09/23(日) 22:02:41.85ID:MlhnYRcx168デフォルトの名無しさん
2018/09/23(日) 22:26:37.81ID:N8r2Gw6d169デフォルトの名無しさん
2018/09/23(日) 22:28:04.83ID:N8r2Gw6d > しかも間違い失敗のリカバリーはオブジェクト指向のメリットの規制隠蔽が裏目に出てより悪化する
しない。
オブジェクト指向を使わないほうが破綻するし、
破綻した後のリカバリーはオブジェクト指向よりも大変
お前は単に両方とも破綻するが
オブジェクト指向的破綻をするのはオブジェクト指向だけと言ってるだけだろ
破綻する時点で問題なんだよ。オブジェクト指向の方が破綻しない
しない。
オブジェクト指向を使わないほうが破綻するし、
破綻した後のリカバリーはオブジェクト指向よりも大変
お前は単に両方とも破綻するが
オブジェクト指向的破綻をするのはオブジェクト指向だけと言ってるだけだろ
破綻する時点で問題なんだよ。オブジェクト指向の方が破綻しない
170デフォルトの名無しさん
2018/09/23(日) 22:42:45.15ID:MlhnYRcx >>169
>オブジェクト指向的破綻をするのはオブジェクト指向だけと
そういう事や。楽をするためにそれをするメリットが上回ってデメリットのが下回らなきゃいけないのはオブジェクト指向の完全必須項目なんだが
大規模複雑はこの完全必須項目がどんどん難易度が上がってくる。
途中の間違い失敗のリカバリのコストは確実にオブジェクト指向のが上
理想論一般論で言えば間違えなくちゃんと作ればいい、どの作り方でも大きいのは大変は大変、以上!て言えばそりゃそうだが
その問題を防ぐための記法が裏目に出て逆効果なら理想論一般論で片付けたらいかんでしょ
>オブジェクト指向的破綻をするのはオブジェクト指向だけと
そういう事や。楽をするためにそれをするメリットが上回ってデメリットのが下回らなきゃいけないのはオブジェクト指向の完全必須項目なんだが
大規模複雑はこの完全必須項目がどんどん難易度が上がってくる。
途中の間違い失敗のリカバリのコストは確実にオブジェクト指向のが上
理想論一般論で言えば間違えなくちゃんと作ればいい、どの作り方でも大きいのは大変は大変、以上!て言えばそりゃそうだが
その問題を防ぐための記法が裏目に出て逆効果なら理想論一般論で片付けたらいかんでしょ
171デフォルトの名無しさん
2018/09/23(日) 23:17:04.84ID:N8r2Gw6d172デフォルトの名無しさん
2018/09/23(日) 23:18:16.29ID:N8r2Gw6d 結局、小規模アプリでも大規模アプリでも
オブジェクト指向のほうが良いって結論なわけだよ。
そして、大規模で破綻するのはオブジェクト指向じゃなくても同じこと
オブジェクト指向のほうが良いって結論なわけだよ。
そして、大規模で破綻するのはオブジェクト指向じゃなくても同じこと
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市内閣の若い世代の支持率は92.4% FNN世論調査★3 [♪♪♪★]
- 【サッカー】日本代表の南野拓実は左膝前十字靱帯断裂の重傷 全治は明らかにされず フランス杯で負傷 所属先のモナコが発表 [久太郎★]
- 【MLB】村上宗隆の『小型契約』は吉田正尚の影響か 市場が思いのほか停滞 「NPB打者に懐疑的。吉田が高すぎた」 [冬月記者★]
- 日本の労働生産性28位に後退、先進7か国で最下位…デフレやコロナ禍で経済の低成長続く [ぐれ★]
- 【兵庫】「女性を妊娠させる権利と30万ドル渡す」にだまされ暗号資産50万円相当詐欺被害 西宮市の男性会社員(50) [ぐれ★]
- ゼレンスキー氏「高市総理に感謝」 9000億円超追加支援に 「国際秩序に貢献」 (動画あり) [ごまカンパチ★]
- 【画像】ホロライブ、課金でおっぱいに自分の広告付けられるようになるwwwwwwwwwwwwwwwwwww
- わいの時代は体育の時に女子はブルマ履いてた
- 頭おかしくなる前に戻りたいんだが
- 緑谷出久「くっさぁ♡」←嗅いでそうなもの
- 駅弁業界ヤバイ「な・ん・で・買ってくれないのぉおおおおおお!」 [592058334]
- 大河ドラマ「真田丸」見てるけど上杉編あたりから面白いな
