オブジェクト指向とDIを分かりやすく例えて教えてくれ 3
■ このスレッドは過去ログ倉庫に格納されています
■ オブジェクト指向・デザインパターン(有用)
わかり易い例
class Dog extends Animal
class Cat extends Animal
■ DI(ゴミ)
DIとは?・・・オブジェクト指向の依存関係を"ひとまとめに"定義する部分と、それを利用するために
オブジェクトを直接newするのではなく、DIコンテナにnewしてもらうパターン
https://web.archive.org/web/20170707082300/http://kakutani.com/trans/fowler/injection.html
> Dependency Injection の形式
> Dependency Injection の基本的な考え方は、独立したオブジェクトを
> Assembler(組み立て係)として用意し、 MovieFinder インタフェースの実装を
> MovieLister クラスのフィールドへ適切に設定させるというものだ。
> 依存関係は図2のようになる。
前スレ
オブジェクト指向とは 分かりやすく教えてくれ
https://medaka.5ch.net/test/read.cgi/prog/1521869966/
オブジェクト指向を分かりやすく例えて教えてくれ 2
https://medaka.5ch.net/test/read.cgi/prog/1525660302/ シェルのパイプラインでサクサクつなげて30秒で入力おわり即実行みたいな処理も
JavaやC#でDIを使うとサブプロセスをインターフェースで隠蔽してインジェクト、
データベースもインジェクト、Webアクセスもインジェクト、設定ファイル読むのもインジェクト
って具合にアホみたいに大量のクラスとインターフェースが作られる
ビルドも遅いしコンテナサービスセットアップしてクラス全部登録すんのも超めんどくさい >>523
だから俺は価値がないDIを使わないって。
DIは特になにか必要になってるわけじゃないのに
こんなふうに(冗長に)書け。そうすれば
そのうち役に立つかもしれないって押し付けるパターンだからね >>524
それで済む程度の処理にDIなんか使うわけないじゃん
「同僚」とやらが実在するなら注意してあげな ではどういうときに必要になるかと言うと、
その具体例はでてこないという
だって、必要だからDIを使うのではなく
とりあえずDIを使っとけになってるから しょぼい案件で工数がそれほど見込めない時に水増しする為に無駄な実装でかさ上げするのに有効。 DIは最高すぎるけどなぁ
本当に同じものについて語ってるのだろうか 300行で書けるスクリプトがJavaとDIのせいで2000行ぐらいに膨れ上がった
ほんと害悪なんだが ドカタがドカタ言語で書くとDIは冗長になるのは分かるよ?
でもそれはドカタが悪いのであってDIの所為じゃない
こっちはDI使ってシンプルで読みやすく保守しやすいコードが書けるんだから寄ってくんな というかjavaやc#がうんこだからDIで安全マージンとりながらやらなければならない
スクリプトだったらそんなん要らん >>542
> ドカタがドカタ言語で書くとDIは冗長になるのは分かるよ?
俺はわかんないよ
なんで、ドカタがドカタ言語で書くとDIは冗長になるのか
説明してくれよ DIで冗長になる前提で話してるのが意味不明
冗長になるって言うならコード書いてみてよ じゃあお題
$app = New-Object -ComObject Excel.Application
$app.DisplayAlerts = $false
$app.Visible = $false
Remove-Item ./* -Recurse
git clone $env.REPO_URL
Get-ChildItem ./spread/*.xlsx | foreach {
$book = $app.Workbooks.Open($_.FullName)
$sheet = $app.Worksheets("datasheet")
[pscustomobject]@{
Foo = $sheet.Range("A1").Text
Bar = $sheet.Range("D5").Text
Baz = $sheet.Range("G2").Text
}
$.Close($false)
} | where { $_.Foo -ne "xxx" } | foreach {
$cmd = "insert into XlsxImp (foo,bar,baz) values ('$($_.Foo)', '$($_.Bar)', '$($_.Baz)');"
$cmd | sqlplus -s -l $env.DB_CONN_STR as sysdba
}
$app.Quit()
JavaとDIを使うとどうなる? ドカタはexcel使う必要あるんだね
成る程ドカタだわ ほらみたことか
DIじゃろくな事にならないからって無様な捨ぜりふ吐いて逃げるんだもんなぁ
普段偉そうなこと言ってるわりにこれだもん
DI厨の限界見えたわ 処理の概要とideone.comなどコードが見易い所にあげるぐらいの気遣いは欲しいな
色んな依存はある気がするが処理がこれしかないならこのままでいいんじゃね? DI厨「DIの不利を悟ったから関係ないこと言ってお茶を濁そう」 全体で20行ぐらいのコードしかないのに
DIする奴いるの? アンチDIって、DIやってる人がいつでもどこでもDIやってると思ってるんだろうか >>552
javaの方がシンプルに書けたらpsの存在意義ってなんだよアホ Mochなどと同じで汎用性が欲しい時、テストとかしやすくしたいときに使おうってだけの話だよね >>561
またテストか。DIはテストだけのものじゃないって言ってるだろ クッソ笑える
DI厨全滅かよwww
なーにが「い、いつもDIするわけじゃねーし」(ふるえ声)
だよwwwww >>560
おう書いてみろや、ご自慢のDI使ってな じゃあJavaとDIでシステム組んで最後の1つの機能が>>552で、これ移植したら円満にプロジェクト終了って時はどうすんの?
そうなってもいつもDIするわけじゃねーし、だの、1つくらいDIじゃなくても問題ないなんつって逃げそうだよなお前らw >>564
適材適所がわからないんだな
スクリプトでやるようなことをDI使ってやれって、頭沸いてんのか? >>566
やっぱり言い訳するんだ
99%Javaで美しいDIで一生懸命組み上げたシステムの最後のピースがやっつけのスクリプトってさぁ
やれやれだよホント まったくだ
JavaもDIも役立たずのゴミ
スクリプトを書いたほうが短く簡潔で保守性も高まる >>571
少なくともここにいるDI厨はスクリプトでやるらしいぞ
大規模システムの一部という前提を与えてやってもDIでやる場面じゃないだのなんだのと言い訳してDIを拒む
じゃあもうどこでDIすんだって話だよ おうおう
出るわ出るわ負け惜しみ
ここでサクッとJavaのDI使ったコードを書いて黙らせるぐらいのことできんのかねぇ >>578
何言ってんだ?
スクリプトならサクッと書けるって例だが? Javaで作るような大規模システムをサクッと書いてよ エクセルの内容をノールックでDBに入れるだけの簡単なお仕事 書き直す気力も起きない程の圧倒的ドカタコードを提示する事で
相手のヤル気を削ぐ作戦に出るとは恐れ入った >>579
どうウンコなのか具体的にってことだろカス DIは百害あって一利なし
利用者もゼロ
これが現実 >>587
自分ができないことってこき下ろしたくなるんだよね >>587
これ見るとDIアンチはただの病気だってことがよくわかる >>589
できるが無駄が多すぎと言ってる
そもそも出来ない君たちとは違うんだな >>591
そうやって悪口言うしか出来ないんだね
完全敗北ってやつだよソレ >>592
みた結果がこれだよ
>>594
普段からDI推奨してるこのスレの住民ですらお題を出したらまったくDIを使わないということが明るみに出てしまった >>597
ほらまた言った
負け惜しみの悪口はやめて素直に参りましたって言えば良いのの プログラマならコードで語れ
DI派はDI使ったコードを書いてようやっと議論のスタートラインに立てる
でも何を言われても書かこうとしない
負けを認めてんだよ内心ではね
でも悔しいから負けたという事実は言葉にはせず悪口に逃げるんだ >>603
君がお題に対してDIを使ったコードを書いたら1にカウントしてやるよ 業務用のコードこんなところで晒して勝った気になるのはまずくないか? そもそもオブジェクト指向もDIも大規模開発の複雑さに立ち向かうための手法なのに、それを理解してない奴が
1ファイルのスクリプトを例に出して、ほらDIなんていらない、とかドヤってんだよなww >>614
大規模開発の奴隷なんだよわかってやれや >>614
雑魚の理論
小さいまとまりの集まりで大きなものを作るんだ
大きくなると造りを変えないといけないんんてのは多分何も作れてないんだそいつ >>552
このくらいの規模だとDIに限らず
関数もクラスもモジュールもクロージャも要らないけど
だからって大きなプログラムで不要な事にはならないよね?
いや、もしかしたらドカタはmain関数で全てやりくりするから不要なのかな?w >>619
もしかして、クラスに分ける=DIを使うと思ってる?
ならアホだよ。
main関数ですべてやりくりするわけ無いじゃん。
DIは使わずにクラスに分けるだけ
はぁ。そんなこともわからんのかね >>552にDIが不要だからって、常にDIが不要な事を示せてないって言ってるだけなんだけど
>>620には理解できなかったみたいだねw
流石ドカタやってるだけあるわ ?
お前はDIがいると言ってる。
俺はいらないと言ってる。
で?お前はDIがいると言うだけ?
理由は? お前がDIがいると言ってることなんて
最初からわかってるんだよ。理由を言え 俺にはDIはいるけどお前のようなドカタには不要だよ
だから意見は一致している
ドカタはドカタとして生きていけ ■ このスレッドは過去ログ倉庫に格納されています