オブジェクト指向ってクソじゃね?
■ このスレッドは過去ログ倉庫に格納されています
カプセル化(英語:encapsulation)とは、オブジェクト指向を構成する概念の一つで、
オブジェクト内部のデータを隠蔽したり(データ隠蔽)、オブジェクトの振る舞いを隠蔽したり、
オブジェクトの実際の型を隠蔽したりすることをいう。
偏差値の低い学校向けの情報処理系教科書において「大変すばらしいものであり絶対に使うように」と大体的に宣伝された。
一方、カリフォルニア大学バークレー校の有識者を中心としたインターネットを作った人たちは「階層化の有害性」として
「絶対に使うな」としている。大雑把にいうと、その時は良くても、将来的な改修の際に隠蔽されたデータに
アクセスできないと解決できない問題が出てきて、結果的にデスマーチに陥るというのである。
オブジェクト指向の発案者であるアラン・ケイもコーディング規約(頭文字にアンダースコアを付けるなどの命名規則)で
縛る程度にすることを推奨しており、アラン・ケイが関わったオブジェクト指向プログラミング言語にはどれも「private」
という概念はない。
https://monobook.org/wiki/%E3%82%AB%E3%83%97%E3%82%BB%E3%83%AB%E5%8C%96 >>1
ケイちゃんの言うレシーバオブジェクトは
ネットワーク越しにアクセスできるコンピュータだから
プライベートのキーワードはなくても
必然的にプライベートになるんじゃないかな 砂糖(シンタックスシュガー)を加えて関数型言語っぽくしているが、臭いまではごまかせない オブジェクト指向が無くなった場合
メソッドは全部グローバル関数になるの?
PersonRename(Person p,string newName);
PersonSetAge(Person p,int age);
PersonGetAge();
FirePersonCreate(Person p);
FirePersonRename(Person p,string newName);
FirePersonSetAge(Person p,int age);
FirePersonGetAge(); 訂正
PersonRename(Person p,string newName);
PersonSetAge(Person p,int age);
PersonGetAge();
FirePersonCreate(Person p);
FirePersonRename(FirePerson p,string newName);
FirePersonSetAge(FirePerson p,int age);
FirePersonGetAge(); 文系がこねくり回して、結果的に無駄にコード量増やすようなイメージしかない。 カプセル化が原因で開発ができなくなるとするならオブジェクトの分け方が不適切なのだろ、開発が進むに連れてオブジェクトの役割が変遷したのだろ、設計やり直せないなら地獄だな 設計のないスタティックおじさん方式は柔軟かもわからんね↓ >>61
正しく組めば重複が減ってコード量は減る
>>64
普通はカプセル化しないことで
開発できなくなることの方が多い
グローバル変数を使うとか オブジェクト指向で描くロバストネス図なんてのは
構造化プログラミングの前のフローチャートそのものじゃないか
オブジェクト指向は現代のGOTO文なんだろ? >>67
https://thinkit.co.jp/article/13487
> ロバストネス図を書くにあたっては、以下のルールを遵守する必要があります。
>
> ・アクターはバウンダリのみ関連線(矢印)が引ける
> ・バウンダリはコントロールとアクターのみ関連線が引ける
> ・エンティティはコントロールのみ関連線が引ける
> ・コントロールはコントロール同士とバウンダリのみ関連線が引ける
残念ながらフロー(流れ)を示す線は書けないので
フローチャートにはならない。特に条件分岐やループなどがない >>67
どちらかというとロバストネス図は
ユースケース図の方が近くて
フローチャートと同じってのはおかしい /** リストの要素をゼロで置き換える **/
private void clearList() {
for (Integer el : someList) {
el = new Integer(0);
}
}
なかなかファンキーなロケンロールだぜ >>68
条件分岐はあるで
ループもあるで
GOTOだからわかりにくいけど
線はフローを表すんやで
ロバストネスエアプか? >>69
ユースケース図はユースケースを並べたものですよね
ロバストネスはユースケースごとに処理フローを
書くわけでフローチャートそのものですよ ■ このスレッドは過去ログ倉庫に格納されています