dupchecked22222../4ta/2chb/859/33/prog152673385921756255547 オブジェクト指向とDIを分かりやすく例えて教えてくれ 3 ->画像>4枚 ◎正当な理由による書き込みの削除について:      生島英之とみられる方へ:

オブジェクト指向とDIを分かりやすく例えて教えてくれ 3 ->画像>4枚


動画、画像抽出 || この掲示板へ 類似スレ 掲示板一覧 人気スレ 動画人気順

このスレへの固定リンク: http://5chb.net/r/prog/1526733859/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

1仕様書無しさん2018/05/19(土) 21:44:19.89
■ オブジェクト指向・デザインパターン(有用)
 
 わかり易い例
 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のようになる。


前スレ

オブジェクト指向とは 分かりやすく教えてくれ
http://2chb.net/r/prog/1521869966/

オブジェクト指向を分かりやすく例えて教えてくれ 2
http://2chb.net/r/prog/1525660302/

2仕様書無しさん2018/05/19(土) 21:51:41.92
■ DIの例
Dog baby = new Dog(mom.cunt, uncle.dick);

3仕様書無しさん2018/05/19(土) 21:59:11.23
>>2
間違い。DIではnewを使わない(DIコンテナが行う)

4仕様書無しさん2018/05/19(土) 22:00:18.05
■ DIの例

それから、PicoContainerはそれぞれのインタフェースがどの実装クラスと結び付けられるのかを通知してもらう必要がある。 MovieFinder にどういうファイル名がインジェクトされるのかについても同様だ。

private MutablePicoContainer configureContainer() {
MutablePicoContainer pico = new DefaultPicoContainer();
Parameter[] finderParams = {new ConstantParameter("movies1.txt")};
pico.registerComponentImplementation(MovieFinder.class, ColonMovieFinder.class, finderParams);
pico.registerComponentImplementation(MovieLister.class);
return pico;
}
この設定コードは、本来ならば別の設定クラスで記述されるべきものだ。

5仕様書無しさん2018/05/19(土) 22:00:41.52
■ コンストラクタインジェクションの例

PicoContainer を利用するためには、以下のようなコードを書く。

public void testWithPico() {
MutablePicoContainer pico = configureContainer();
MovieLister lister = (MovieLister) pico.getComponentInstance(MovieLister.class);
Movie[] movies = lister.moviesDirectedBy("Sergio Leone");
assertEquals("Once Upon a Time in the West", movies[0].getTitle());
}
なお、このサンプルではコンストラクタ・インジェクションを利用しているが、 PicoContainer では
セッター・インジェクションもサポートしている (開発者たちはコンストラクタ・インジェクションのほうが好みのようだけれど)。

6仕様書無しさん2018/05/19(土) 22:02:30.37
■ Spring でのセッター・インジェクションの例
Spring Framework は エンタープライズ Java 開発向けの守備範囲の広いフレームワークだ。
トランザクション、永続化フレームワーク、Web アプリケーション開発や JDBC に関する抽象レイヤがある。

MovieLister がインジェクションに対応できるように、 サービス設定用の setter メソッドを定義しなければならない。
(省略)

同様に、MovieFinder には文字列の setter を定義する。
(省略)

3番目のステップとして、ファイルに設定を記述する。Spring での設定は XML ファイルでもコードでも可能だが、 XMLで行うことが望ましいとされている。

<beans>
<bean id="MovieLister" class="spring.MovieLister">
<property name="finder">
<ref local="MovieFinder"/>
</property>
</bean>
<bean id="MovieFinder" class="spring.ColonMovieFinder">
<property name="filename">
<value>movies1.txt</value>
</property>
</bean>
</beans>

テストはこんな感じだ。
public void testWithSpring() throws Exception {
ApplicationContext ctx = new FileSystemXmlApplicationContext("spring.xml");
MovieLister lister = (MovieLister) ctx.getBean("MovieLister");
Movie[] movies = lister.moviesDirectedBy("Sergio Leone");
assertEquals("Once Upon a Time in the West", movies[0].getTitle());
}

7仕様書無しさん2018/05/19(土) 22:03:15.98
結局手抜きしてフィールドインジェクションしてるわ

8仕様書無しさん2018/05/20(日) 03:13:45.22
XMLもsetterもキモイから嫌い
コードで配線の設定書いてコンストラクタでインジェクションしてる

9仕様書無しさん2018/05/20(日) 06:56:39.07
定義と実装ぐらい区別しようよ

10仕様書無しさん2018/05/20(日) 07:18:45.20
>>9
クラスやインターフェースの定義の話じゃないぞ?

DIの依存関係の定義っていうのはコードもしくは設定ファイル
なんだから、お前が勘違いした実装というのは
「コードで書いたDIの依存関係の」定義だろ

11仕様書無しさん2018/05/20(日) 09:10:00.65
>>6
ついにここまで来たか
学習能力高いな
アノテーション定義もやってみよう

12仕様書無しさん2018/05/20(日) 19:34:27.18
さて、前スレのなぜDIを使うとライフサイクルの事まで
考えなければいけなくなるのか?の答

惜しい所まで来てるんだけど、あと一歩足りない
DIを悪く言えないから、気づいてしまったけど
口に出して言えないのかもしれないねw

DIを使うとライフサイクルの事まで考えなければいけなくなるのは
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のようになる。

一言で言うならば、newを代わりにやってくれるものと考えればいい
それだけ。そう、それだけなんだよ。

だからどんな用途にも使える。これは一見優れているように見えるかもしれないが、
汎用的な解決方法しか提供できないため、逆に特定の問題をシンプルに解決することができない

フレームワークは一般的に特定の問題(例えばウェブアプリ)を解決するために作られたものなので
ライフサイクルの管理もフレームワークで管理して、特定の問題の解決に必要な部分のみを
プログラマが記述すれば良くなる。

13仕様書無しさん2018/05/20(日) 19:36:15.35
もちろんDIを使っていてもフレームワークが
DIを内部に隠蔽することでライフサイクルの管理を
プログラマがしなくてすむようにできるだろうけど、
そうするとプログラマがDIを直接使うのが難しくなってしまう

14仕様書無しさん2018/05/20(日) 19:39:22.07
支離滅裂

15仕様書無しさん2018/05/20(日) 19:39:48.38
以上、staticおじさんでした

16仕様書無しさん2018/05/20(日) 19:40:12.11
反論がないところまで想定済みw

17仕様書無しさん2018/05/20(日) 19:45:28.28
キチガイに触るな

18仕様書無しさん2018/05/20(日) 19:58:39.31
本当に文句だけ言って去っていくのなw

19仕様書無しさん2018/05/20(日) 20:12:33.22
DI(フレームワーク)がライフサイクル管理してくれるんだろ?
プログラマは意識しなくていいやん

20仕様書無しさん2018/05/20(日) 20:13:28.86
まだやってたのか!?
おまえ等がDI大好きなのはわかった…

21仕様書無しさん2018/05/20(日) 20:13:56.23
DIはフレームワークじゃないよ。パターン。
DIパターンを使ったフレームワークと勘違いしてね?

22仕様書無しさん2018/05/20(日) 20:50:05.38
>>12
だいぶ惜しくなってきたんじゃない?

23仕様書無しさん2018/05/21(月) 01:21:20.44
>>22
自分が?まあ反論してないってことはそういうことなんだろうけど

24仕様書無しさん2018/05/21(月) 01:32:01.57
むしろ今までライフサイクル意識せずピュアな実装してたとか恐怖でしかない

25仕様書無しさん2018/05/21(月) 01:45:49.89
そういうのはフレームワークが隠蔽すべきものだからね


lud20180521200354
このスレへの固定リンク: http://5chb.net/r/prog/1526733859/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

TOPへ TOPへ  
このエントリをはてなブックマークに追加現在登録者数177 ブックマークへ



全掲示板一覧 この掲示板へ 人気スレ | Youtube 動画 >50 >100 >200 >300 >500 >1000枚 新着画像

 ↓「オブジェクト指向とDIを分かりやすく例えて教えてくれ 3 ->画像>4枚 」を見た人も見ています:
オブジェクト指向、DIとService Locatorの違いを教えて4
オブジェクト指向の活用方法を教えて下さい
【日韓】 過去の問題を未来指向的に解決する方法〜日本は過去の誤りを教科書に記載し、歴史の一部として子供に教えよ★2[05/24] [無断転載禁止]
オブジェクト指向は無駄なもの。俺が理解出来ないからね (72)
ダウ平均株価が大幅に下落するとどうなるの?池上彰風に分かりやすく教えてくれ
高校生に集団的自衛権をわかりやすく教えてください
高校生に集団的自衛権をわかりやすく教えてください
大谷の凄さをNBAに例えて教えてくれ
サッカー初心者の俺にオフサイドをAKBに例えて教えてくれ
カイジはアニメしか見たことないから最近の話がどれだけ酷いか第一話〜沼までに例えて教えてくれ
将棋をセックスで例えて教えてくれ
面接官「チェスで例えるとあなたはどの駒ですか?理由も教えてください」
【丁寧】教えてあげるスレ【分かりやすく】
ちんさんに生理痛の辛さをわかりやすく教えてやるからよく聞け
バラードばかり歌う俺に盛り上がれる曲を教えてくれ
オブジェクト指向はオワコン
例えば慶應VS上智とか早稲田VS理科大みたいな永遠のライバル教えてください
Javaのオブジェクト指向のサンプルほしい
オブジェクト指向いらないとか言ってるやつwwww
貧乏DIY系のYouTuberになろうと思う。動画UPしたから改善点を教えてくれ
「プリンセスコネクト!Re:Dive」って面白い?ケンモウ君こういうの好きそうだから教えてくれ
pcについて教えてくれ
nvidia←どうしても読み方がわからん。教えてくれ
Breeding seasonみたいなエロゲー教えてくれ [無断転載禁止]©bbspink.com
Web系が将来性ない件について教えてくれ
フレッシャーズコースについて教えてくれ
ミニマックス・リグレットについて教えてくれ
C#でアクセスに書き込む方法をザックリ教えてくれ
将来プログラマーになりたいんだが色々と教えてくれ
未来人・宇宙人・異世界人は来て教えてくれ その5
オブジェクト指向が嫌われてる理由 (43)
オブジェクト指向ができないと言われる (316)
こんな例え教えて [無断転載禁止]
大阪市廃止の何が問題かわからないんけゲーム例えて教えて
猫が教えてくれたこと Kedi
プログラミングを教えてくれ
欅坂の人間模様について教えてくれ
プログラミングについて教えてくれ
redditのオヌヌメエロサブレディット教えてくだシャス!:Reddit porn subreddit
【緊急】曲が思い出せない!たぶんクラシック音楽!ケンモメ教えてくれ、MIDIで再現したから [無断転載禁止]©2ch.net
processingに詳しい方教えてください
最新のUKロックを聴きたい、Radioheadで止まってるからオススメのバンド教えてくれ、プログレ寄りのやつな
ニートです1からプログラミングを教えてくれる
PGやSEの年収、経験年数、教えてください!
誰かこのAV女優の名前教えてください ©bbspink.com ->動画>163本->画像>422枚
このAV女優の名前わかる人教えてください ©bbspink.com ->動画>278本->画像>490枚
【画像専用】これ誰と聞けば教えてくれるスレ 147 ©bbspink.com ->動画>24本->画像>1064枚
【動画専用】これ誰と聞けば教えてくれるスレ 155 ©bbspink.com ->動画>338本->画像>46枚
【動画専用】これ誰と聞けば教えてくれるスレ 141 ©bbspink.com ->動画>498本->画像>32枚
【動画専用】これ誰と聞けば教えてくれるスレ 154 ©bbspink.com ->動画>373本->画像>42枚
【動画専用】これ誰と聞けば教えてくれるスレ 150 ©bbspink.com ->動画>394本->画像>83枚
痩せたい、手っ取り早く痩せる方法教えろ、例えば食欲がなくなる薬とか
面白いサイト、便利なサイトを教えてください
腕毛やすね毛や眉毛が薄いのに頭髪ばかり生えてくる
【ラジオ】radikoプレミアに入ろうと思う。日本全国面白い番組教えて🤗
Official髭男dismが若い女子に人気らしいけどオッサンにも分かるように理由教えて!!
PCゲームやるから覚えとくと便利な英語教えてほしい。とりあえず「WTF」と「Are you kidding me?」は覚えた
WEB系PGが俺に親切に教えてくれるスレ (45)
CMSどうにもならない誰か教えてください。 [無断転載禁止]&#169;2ch.net (15)
教えて
【ドゥーパ!】DIY関連雑誌・書籍【教えて】1冊目
プログラミング教えてるが…
【募集】推しがネットでdisられたとき、円満に反論するフレーズ教えて

人気検索: 鈴木沙彩ファンクラブ Marsha babko 洋和ロリ 豢狗i蛻ゥ 競泳 女子 剃り残し preteen porn kids child 1 Child あうアウpedo little girls 蜿ッ諢帙f縺・??辟。菫ョ豁」 ベトナムロリ ベトナム小学生
20:45:47 up 131 days, 21:44, 0 users, load average: 9.67, 9.59, 14.93

in 0.019814014434814 sec @0.019814014434814@0b7 on 082709