フェイシャルプログラミングではなく
ACT指向プログラミングは、コードの柔軟性とスケーラビリティを改善し、オブジェクト指向プログラミング(OOP)のコア原理に従うため、ベストプラクティスです。以下にはいくつかの理由があります:
1。
インターフェイス定義契約:
インターフェイス仕様クラスは、
の代わりに何をすべきか- を行う必要があります。クライアントコードのデカップリング(インターフェイスへの依存)と特定の実装。
インターフェイスプログラミングの場合、特定の実装ではなく、動作の定義に焦点を当てます。
- 2。上昇の原則をサポート - 逆転の反転(固体原理)
逆の原則に頼る(DIP):高レベルのモジュール(ビジネスロジック)は、低レベルモジュール(実装)に依存してはなりません。
たとえば、サービスは、
や
などの特定の実装ではなく、- インターフェイスに依存できます。これにより、柔軟性が保証され、カップリングが削減されます。
- 3。サポート多型
PaymentProcessor
PaymentGateway
StripeGateway
インターフェイスプログラミングに向けて、複数のクラスが同じインターフェイスを実現できるため、簡単に交換して使用できます。 PayPalGateway
たとえば、 :および
は両方とも
インターフェイスを実現します。コードが特定の実装の代わりにに依存している場合、コードを変更せずに
とを切り替えることができます。
- 4。
- 簡単に交換できます:
ArrayList
クライアントコードを変更せずに、ある実装を別の実装(たとえば、あるデータベースサービスから別のデータベースサービスに切り替える)に置き換えることができます。 LinkedList
List
再現性:List
インターフェイス用に記述されたコードは、どのクラスでもシームレスに動作できます。 ArrayList
LinkedList
5。
テスト用のシミュレーション:インターフェイスにより、ユニットテストのためのアナログ実装の作成が可能になります。
たとえば、
:
インターフェイスに依存する場合は、実際のデータベースの代わりにテストを実行するためにシミュレーションを使用できます。 -
6。
-
既存のコードを変更する必要がないため、新しい実装の追加は簡単です。既存のインターフェイスを実現する新しいクラスを作成する必要があります。
例
インターフェイスプログラミングに直面することにより、
クラスは、変更せずに- 実装(、など)で動作できます。
-
DatabaseService
キーアドバンテージレビュー:
取引コード(タイトな結合の削減)。
コードの拡張とメンテナンスを容易にします。
単純化されたテスト。 -
抽象化や多型など、OOPの原理を奨励します。
インターフェイスプログラミングを通じて、ベストプラクティスに沿って柔軟でモジュール化された、より柔軟なシステムを構築できます。
以上がJava-Core-:プログラミング間インターフェイスの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。