0

私は例を調べていますが、なぜ彼らがこれをしているのかわかりません。彼らは IEmailSender で mySender を設定しています....

IEmailSender mySender = new MyEmailSender();

なぜただ書かないのか

MyEmailSender mySender = new MyEmailSender();

MyEmailSender には既に IEmailSender インターフェイス参照があるため

4

2 に答える 2

2

コードの後半で、彼らは書くことができます

mySender = new MyNewEmailSender();

必要であれば。しかし、それは必ずしも正しいか間違っているとは限りません。彼らは、実装に関係なくmySender、要点を理解しようとしているだけです。IEmailSender

于 2013-01-30T22:26:53.830 に答える
2

多くの理由があります。その 1 つは、IEmailSenderインターフェイスに対してプログラミングし、後でMyEvenBetterEmailSender代わりに使用することにした場合、1 行のコードを変更するだけで済みます。

もう 1 つは、特定の実装からコードを「切り離す」ことを可能にし、プログラム内でハードコーディングする代わりにコードを挿入することさえできることです。

ウィキペディアでインターフェースベースのプログラミングの詳細を読んでください。

于 2013-01-30T22:27:21.967 に答える