オブジェクト指向を分かりやすく例えて教えてくれ 2
レス数が1000を超えています。これ以上書き込みはできません。
わかり易い例
class Dog extends Animal
class Cat extends Animal
オブジェクト指向とは 分かりやすく教えてくれ
https://medaka.5ch.net/test/read.cgi/prog/1521869966/ DIが便利すぎてDI無しで開発するのが辛い
DI使うと超お手軽にSOLIDを実現できて、テストもスラスラ書けるんだもの
人間はダメな生き物だから一回楽な方法を覚えると他のやり方が億劫になる ライフサイクルがなくなるというバカ特有の亜空間思考w 自分の理解できないものをクソだと認定する癖やめたほうがいいぞ >>972
ライフサイクルがなくなるんじゃなくて
ライフサイクルを管理する必要がなくなる >>974
なんで反論?
反論待ち状態なんだけど?
そしてこちらの答はすでに用意済み とりあえずこのレスに対する
反論待ちなので、レスよろしくね
なにを勘違いしてるんだ?
ライフサイクルなんてのが必要になるのがDIの欠点
DIを使わなければ、ライフサイクルそのものを無くせる
952 自分:仕様書無しさん[sage] 投稿日:2018/05/19(土) 17:42:30.28
>>949
ライフサイクルなんて面倒なものが
出てくるのはDIだけなんだよ
過剰な設計が過剰なものを作り出してる
>>951
ではなぜDIをつかわないフレームワークが
ライフサイクル管理なしで
アプリ開発を実現し続けられると思う? こいつら定期的に今の状態を書き込んで
やらないとすぐ忘れるからなw スーパークラスやインターフェースなんて必要になるのがOOPの欠点
OOPを使わなければスーパークラスやインターフェースそのものを無くせる
コールバック関数で充分だった >>977
todoをいつ作っていつ削除するかをプログラミングする必要ないの? >>981
無くして
class BarRepository implements FooRepository {
private dbConnection;
public Hoge findBy(int id){
return dbConnection.findBy(id)
}
public void insert (Hoge hoge){
dbConnection.insert(hoge)
}
public void update (Hoge hoge){
dbConnection.update(hoge)
}
public void delete (Hoge hoge);
dbConnection.delete(hoge)
}
} >>982
DIのライフサイクルの管理の話だよね?
むしろ逆になんでtodo(TODOクラスのインスタンス)を
プログラミングしてるのかわからないんだが
なんでDIではそんな事が必要なの?w >>984
>>952でDI以外にライフサイクルは出てこないと言っているので聞いている 明示化されてないだけでどんなシステムでもオブジェクトのライフサイクルは存在する
例外があるとしたらすべての機能がstaticメソッドで書かれたシステムかな >>985
なにを必死になってるのかわからないけど
DIはライフサイクルを意識しないといけないが、
DIをつかわないフレームワークでは、ライフサイクルを
意識しなくてもいいって話なんだがわかってる?
あんた言葉遊びに持っていきたいだけじゃないの? 違う
DIを使わないと実行フローの中にライフサイクルが埋め込まれてわけがわからなくなる
そうやって管理不能になる前にDIを使って構造的に体系的にライフサイクルを整理し制御下に置こうってことな >>988
わかったから、先にこの質問に答えてくれ
とりあえずこのレスに対する
反論待ちなので、レスよろしくね
なにを勘違いしてるんだ?
ライフサイクルなんてのが必要になるのがDIの欠点
DIを使わなければ、ライフサイクルそのものを無くせる
952 自分:仕様書無しさん[sage] 投稿日:2018/05/19(土) 17:42:30.28
>>949
ライフサイクルなんて面倒なものが
出てくるのはDIだけなんだよ
過剰な設計が過剰なものを作り出してる
>>951
ではなぜDIをつかわないフレームワークが
ライフサイクル管理なしで
アプリ開発を実現し続けられると思う? >>989
ライフサイクルの管理を放棄して目をそらしてるだけ
なぜ開発ができているかというとたまたま動いてるだけというのが正解 ライフサイクルの管理をしてないという勘違いをまず改めたまえ 例えばAndroidのアクティビティ
Android開発にはDIは必須ではないがアクティビティには明確にライフサイクルが定義されていてドキュメントにも明記されている
WindowsのFormsにもライフサイクルはあるし
MVCフレームワークもリスナーやコンテキストなど様々なインスタンスのライフサイクルを管理している
DBのセッションやトランザクションの管理もライフサイクル管理の例だが別にDIは必須ではない
インスタンスを生成してコントロールするすべての処理にライフサイクルの管理が必要なんだよ
DIを使わない場合はフレームワークが内部で管理しているライフサイクルと処理フローの中で野放しになっているライフサイクルが存在する
野放しになっている方をDIを使って完全に制御下に置こう >>983
定義側のコードだけで利用側のコードがないから、
正直、具体的な置き換え例は出せないんだけど、
C言語でも同機能のコードが書けるでしょ?
その時使うのはポインタを利用したコールバック関数くらいで、
スーパークラスやインターフェースは要らないよね? 頑張れば書けるのと楽に書けるは天地の差があるんだが
この簡単な事実を理解できない人もごく稀に存在するらしい
かわいそうだね オブジェクト指向のスレでDIばかり語る無能の集団か…。 楽に書けるかどうかは技術力の問題
OOPの技術力がなければC言語の方が楽
OOPは難しくてよくわからないという現場に置かれた場合、
あなたがOOPを選択するのはベストプラクティスではない
スレタイの通り、スーパークラスやインターフェースをわかりやすく教えることができるかどうか、
できないのなら現場では欠点だ >>996
そうなんだ
君は手続き型言語スレに行った方がいいんじゃないかな このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 13日 4時間 0分 3秒 レス数が1000を超えています。これ以上書き込みはできません。