質問編集履歴

1 えどぇc

kuzurotto

kuzurotto score 403

2017/06/02 00:28  投稿

Larvalの仕組みであるファサード(オブジェクト注入、サービスコンテナ、サービスプロバイダー)について
Larvalの仕組みであるファサード(オブジェクト注入、サービスコンテナ、サービスプロバイダー)について
まずはこちらをご覧いただきたい。
https://laravel10.wordpress.com/2015/03/29/%E4%BE%9D%E5%AD%98%E6%80%A7%E3%81%AE%E6%B3%A8%E5%85%A5%E3%81%A8%E3%81%AF/#more-946  
[依存性の注入とは](https://laravel10.wordpress.com/2015/03/29/%E4%BE%9D%E5%AD%98%E6%80%A7%E3%81%AE%E6%B3%A8%E5%85%A5%E3%81%A8%E3%81%AF/#more-946)  
Messengerクラスのreturnで使っているsendメソッドは、
SenderInterfaceインターフェイスを継承しているMailSenderクラスとBikeSenderクラスのsendメソッドだと思いますが、
MailSenderクラスとBikeSenderクラスのsendメソッドをmailtransmissionというメソッドに修正した場合、
Messengerクラスのreturnで使っている箇所も、
return $this->sender->mailtransmission($message);に修正しないといけませんよね。
まず、依存性注入やDIコンテナを導入する観点として保守性や柔軟性の向上という点が思想とされていますが、参照URL先の依存性の注入を使っていないケースと依存性の注入を使っているケースの話では柔軟性についてはとてもわかります。
そもそも依存性の注入を使っていないケースで
BikeSenderクラスはデッドロジックになってますよね。。。
あえて、わかりやすくするためにそうしてるのかもですが。
そこは置いといて話は戻り、依存性注入の話とはズレますが
MailSenderクラスとBikeSenderクラスのメソッド名を修正したら
Messengerクラスで、MailSenderクラスとBikeSenderクラスの使用するメソッド名も修正しないといけない点は、柔軟性とはいえないと思います。
そもそも、参照URL先の内容に対する私の観点が違うのでしょうか?
一応、参照URL先の内容はファサードまで読みました。
最終的にファサードを使うと何が嬉しいのかというところで、柔軟性が上がった結果、メモリー効率やパフォーマンス効率がよくなるという理解はあるのですが、もう一度、依存性の注入から見返していくと、そもそもMessengerクラスが、MailSenderクラスに依存しているから柔軟性がないっていうけど、依存性の注入を使ったケースでもメソッド名修正したらその箇所修正しなきゃいけないから、その点柔軟ではないよね。って思ってるのですが、結局、依存性の注入という概念でも最小限の修正は必要なのでしょうか?
何が知りたいとかではなく、ただ思ったことを質問してみました。
  • PHP

    26923 questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • サービス

    56 questions

    サービスとはバックグラウンド上に常駐し、長時間稼動し続ける実行可能ファイルを指します。

  • Laravel 5

    2901 questions

    Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

  • DI (Dependence Injection)

    21 questions

    DI (Dependence Injection)は、「依存性の注入」という概念を指します。オブジェクト間で依存性のあるコードを外部の設定ファイルから注入するソフトウェアパターン設計思想です。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る