Larvalの仕組みであるファサード(オブジェクト注入、サービスコンテナ、サービスプロバイダー)について
まずはこちらをご覧いただきたい。
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クラスに依存しているから柔軟性がないっていうけど、依存性の注入を使ったケースでもメソッド名修正したらその箇所修正しなきゃいけないから、その点柔軟ではないよね。って思ってるのですが、結局、依存性の注入という概念でも最小限の修正は必要なのでしょうか?
何が知りたいとかではなく、ただ思ったことを質問してみました。
回答2件
あなたの回答
tips
プレビュー