- 【PHP】下らねぇ質問はここに書き込みやがれ 6 [無断転載禁止]©2ch.net
498 :デフォルトの名無しさん[sage]:2016/07/01(金) 19:39:13.50 ID:NaVGwgiy - >>490
素の PHP でできもしない DI をやれと言ってるんじゃなくて、なぜ DI という概念が生まれたのかを考えてみたらと言ってるつもりなんだが、そこは分かっているのかな。
|
- 【PHP】下らねぇ質問はここに書き込みやがれ 6 [無断転載禁止]©2ch.net
502 :デフォルトの名無しさん[sage]:2016/07/01(金) 19:47:42.13 ID:NaVGwgiy - >>470
メンバ変数に直接代入するということは、値を保持する実体を変数に固定化することになり抽象化できていないということ。 アクセスメソッドを通せば値の保持を変数以外にすることもできるし、クラスの動作を維持できる値に限定することでき、クラスの内情を隠蔽できる。 サブクラスでオーバーライドすることもできるし interface化することもできるし、これはポリモーフィズムの考え方の上でも重要。
|
- 【PHP】下らねぇ質問はここに書き込みやがれ 6 [無断転載禁止]©2ch.net
503 :デフォルトの名無しさん[sage]:2016/07/01(金) 19:53:06.85 ID:NaVGwgiy - >>501
何言ってるのかよく分からないけど、DI の特筆するべき点は依存性の排除だよ。 上流が下流の事情に合わせて段取りしなければならないのはその間に依存関係ができているということだ。 特に上流が下流に依存している点はとてつもなく愚かなことだろう?
|
- 【PHP】下らねぇ質問はここに書き込みやがれ 6 [無断転載禁止]©2ch.net
505 :デフォルトの名無しさん[sage]:2016/07/01(金) 19:56:46.91 ID:NaVGwgiy - >>486
まあ考え方の上ではそれでもいいんじゃない。 PHP は実行時に後から関数を足せるから満たすべき要件は満たしていると思うよ。 ただその処理に他の関数や変数が必要なのであればクラス化すべきなのは分かるよね。
|
- 【PHP】下らねぇ質問はここに書き込みやがれ 6 [無断転載禁止]©2ch.net
506 :デフォルトの名無しさん[sage]:2016/07/01(金) 19:57:30.96 ID:NaVGwgiy - >>504
結合を疎にするってどういうこと?
|
- 【PHP】下らねぇ質問はここに書き込みやがれ 6 [無断転載禁止]©2ch.net
507 :デフォルトの名無しさん[sage]:2016/07/01(金) 20:06:17.45 ID:NaVGwgiy - あ、>>506 は否定してるわけではなく、依存性の排除を否定した上で疎結合を理由に挙げるその心を訪ねてるんだよ。
|
- 【PHP】下らねぇ質問はここに書き込みやがれ 6 [無断転載禁止]©2ch.net
511 :デフォルトの名無しさん[sage]:2016/07/01(金) 20:17:41.67 ID:NaVGwgiy - >>508
うんとね、Logger を使うクラスだけが Logger(の存在)に依存するのは当たり前なの。 んで Logger の内情に依存しないことが重要だし、Logger を使いもしない Controller が Logger に依存しないことも重要なの。 でないと下流のクラスの仕様に上流が引きずられちゃうでしょう?
|
- 【PHP】下らねぇ質問はここに書き込みやがれ 6 [無断転載禁止]©2ch.net
512 :デフォルトの名無しさん[sage]:2016/07/01(金) 20:20:00.68 ID:NaVGwgiy - >>511
Logger(の存在と interface) と言うべきだった
|
- 【PHP】下らねぇ質問はここに書き込みやがれ 6 [無断転載禁止]©2ch.net
517 :デフォルトの名無しさん[sage]:2016/07/01(金) 20:38:26.06 ID:NaVGwgiy - >>513
DIコンテナが使えないなら当事者が注入しなけりゃ意味が無いだろ。 Controller から Hoge の処理を呼び出すとき、お前は Hoge の存在だけを見て Hoge が何に依存しているのか分かるのかい? コードを知っているから DBConnection と Logger と FTPSession と Pipe を必要としていて他の物を必要としていないことが分かるんだろ? ころころ変わるコードに Controller 等の上流を強依存させて何の得があるんだよ。
|
- 【PHP】下らねぇ質問はここに書き込みやがれ 6 [無断転載禁止]©2ch.net
519 :デフォルトの名無しさん[sage]:2016/07/01(金) 20:47:32.96 ID:NaVGwgiy - >>516
振る舞いを指定するのは上流ではなく注入処理だよ。 DIコンテナならそれが、Logger::getInstance ならそれが。 これは Logger用の interface を持つオブジェクトを返しさえすればよく、具象クラスとして何を取るかは状況次第。
|
- 【PHP】下らねぇ質問はここに書き込みやがれ 6 [無断転載禁止]©2ch.net
522 :デフォルトの名無しさん[sage]:2016/07/01(金) 21:07:39.17 ID:NaVGwgiy - >>520
どうでもいい小さなオブジェクトはどう扱うつもりなの?
|
- 【PHP】下らねぇ質問はここに書き込みやがれ 6 [無断転載禁止]©2ch.net
524 :デフォルトの名無しさん[sage]:2016/07/01(金) 21:16:37.08 ID:NaVGwgiy - >>523
普通ね 恥ずかしげもなくそう言えるなら大物だわ。
|