私は例を調べていますが、なぜ彼らがこれをしているのかわかりません。彼らは IEmailSender で mySender を設定しています....
IEmailSender mySender = new MyEmailSender();
なぜただ書かないのか
MyEmailSender mySender = new MyEmailSender();
MyEmailSender には既に IEmailSender インターフェイス参照があるため
私は例を調べていますが、なぜ彼らがこれをしているのかわかりません。彼らは IEmailSender で mySender を設定しています....
IEmailSender mySender = new MyEmailSender();
なぜただ書かないのか
MyEmailSender mySender = new MyEmailSender();
MyEmailSender には既に IEmailSender インターフェイス参照があるため
コードの後半で、彼らは書くことができます
mySender = new MyNewEmailSender();
必要であれば。しかし、それは必ずしも正しいか間違っているとは限りません。彼らは、実装に関係なくmySender
、要点を理解しようとしているだけです。IEmailSender
多くの理由があります。その 1 つは、IEmailSender
インターフェイスに対してプログラミングし、後でMyEvenBetterEmailSender
代わりに使用することにした場合、1 行のコードを変更するだけで済みます。
もう 1 つは、特定の実装からコードを「切り離す」ことを可能にし、プログラム内でハードコーディングする代わりにコードを挿入することさえできることです。
ウィキペディアでインターフェースベースのプログラミングの詳細を読んでください。