1

だから私は依存性注入の基本を知っています。メソッド内でオブジェクト自体をインスタンス化するのではなく、依存関係をメソッド パラメーターとして渡す必要があります。

これは、DateTime オブジェクトや ReflectionClass オブジェクトなど、PHP に付属するクラスにも当てはまるのでしょうか?

たとえば、私が取り組んでいるクラスのメソッドの 1 つは、渡されたオブジェクトのプロパティについて知る必要があります。タスクを達成するために ReflectionClass を使用したかったのですが、渡す必要はないように思えました。クラスが常にアクセス可能であり、比較的変更されていない場合 (新しい PHP バージョンで ReflectionClass が変更されない限り)、パラメーターとしての ReflectionClass オブジェクト。

4

1 に答える 1

0

これは、アプリケーションの設計要件によって異なります。

アプリケーションが特定のメソッドが機能するためにDateTimeを必要とすることがわかっている場合は、DateTimeを渡します。DateTimeの周りにカスタム機能が必要な場合は、DateTimeをサブクラス化して送信することを検討してください。

メソッドシグネチャでPHPの型ヒントを使用する場合は、代わりにインターフェイスを使用することを検討してください。これにより、送信されるすべてのオブジェクトが受信クラスとのコントラクトを実行します。このアプローチは、将来のPHPでの互換性のない変更からアプリケーションを保護するのにも役立ちます。

于 2013-01-25T05:14:07.510 に答える