インターフェイスにまだ実装されていないメソッドを実装する新しいコンポーネント

DefChip

私は2つのクラスファイルを持っている(WallSwitchProximitySwitch) -メソッドを実装する-のは彼らだ、サードパーティが提供するコンポーネントとしようOn()Off()からIUserController、私はシステムを消費し、私のコアに内蔵されているインタフェース。

すなわち、 - 、サードパーティが提供する-私は、また、三つのクラス有しCeilingFanLightbulbおよびCCTVCameraからメソッドを実装し、ICeilingComponentコアシステムの一部であるインターフェイスを、。これらのICeilingComponent実装クラスはインスタンス化され、IUserController継承クラスに注入されます。次に例を示します。

ICeilingComponent component = new LightBulb();

IUserController controller = new WallSwitch(component);

次に...

controller.On();

controller.Off();

みんな幸せです。

これで、サードパーティが提供する新しいコンポーネントがありますDimmerSwitch。これIUserControllerOn()メソッドも実装しますOff()が、DimmerSwitchクラスはさらにメソッドIncreasePower(int amount)とを実装ます。DecreasePower(int amount)これはCeilingFanと(調光可能)Lightbulbのみ影響しCCTVCamera

これをコアシステムに対応させたいのですが、他のサードパーティコンポーネントに、実装を契約したインターフェイスで説明されているように構造を変更せずに、それを行う方法を理解できていません。それが重要な部分です。他の場所での変更に影響を与えることなく、コアシステム内でこれを処理できる方法が必要です。

正しく理解できなかったデザインパターンまたはインターフェイスの方法論は何ですか?

私はこれをすべて書き留めることがどういうわけか私に解決策を提示することを望んでいました。しかし、いや。たぶん、私は今、木のための木を見ることができません。私が正しい用語だと思ったものを検索しました。これは確かに一般的な問題であるに違いありません。私を馬鹿げたように見せてください。

PSこれは明らかに現実の問題ではありません-私は確かに電圧についての議論を奨励したくありません。しかし、これも宿題ではありません。私がそんなに若かったらいいのにと思います。私は理解を容易にするために、この問題に頭を悩ませようとしています。どんな回答も歓迎します(電荷に関するものを除く)。

ランジフー

このように、たとえばIEnhancedUserControlと呼ばれる拡張インターフェイスを作成できると思います。

interface IEnhancedUserController : IUserController
{
void IncreasePower(int amount);
void DecreasePower(int amount);
}

次に、CeilingFanとLightbulbは、元のインターフェイスではなく、この拡張されたインターフェイスを実装します。このようにして、元のインターフェイス、CCTVCameraなどの残りのコードの変更を回避できます。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

webstormにtypescriptインターフェースを実装すると、「実装されていないメソッド」エラーが発生します

分類Dev

メソッドパラメータとしてまだ実装されていないインターフェイスを使用するクラスでJUnitテストを実行するにはどうすればよいですか?

分類Dev

メソッドパラメータとしてまだ実装されていないインターフェイスを使用するクラスでJUnitテストを実行するにはどうすればよいですか?

分類Dev

JpaRepositoryインターフェースの実装、そのメソッドがどこに実装されているかを理解したいですか?

分類Dev

JpaRepositoryインターフェースの実装、そのメソッドがどこに実装されているかを理解したいですか?

分類Dev

JpaRepositoryインターフェースの実装、そのメソッドがどこに実装されているかを理解したいですか?

分類Dev

インターフェイスの実装されていないメソッドのエラーなし

分類Dev

Groovyトレイトは、スーパークラスのすべてのメソッドを実装するように要求しますが、別のインターフェースに実装されています

分類Dev

インターフェース参照を使用して、静的でない実装されていないメソッドを呼び出す

分類Dev

インターフェイスの実装を共有しないインポートされたコンポーネントの適切なタイプ

分類Dev

(明示的にそのインタフェースを実装せずに)インタフェースのメソッドを実装するクラスは、その特定のインターフェイスを拡張していますか?

分類Dev

インターフェイスを返すメソッドがあるが、実装されていないエラーが発生するインターフェイスを実装する

分類Dev

ビジネスロジックを実装するインターフェイスで宣言されていない場合にステートレスBeanメソッドを呼び出す方法

分類Dev

例外:「ハンドラーのアダプターがありません。ハンドラーはコントローラーのようなサポートされているインターフェースを実装していますか?」

分類Dev

抽象メソッドで本体が指定されていない-JDK8でコンパイル時エラーが発生するスーパーインターフェイスメソッドを実装しようとしているインターフェイス

分類Dev

インターフェイスメソッドではないメソッドの実装を防止する

分類Dev

インターフェイスに基づいてクラスメソッドを実装する

分類Dev

メソッド引数が部分的にサポートされている場合は、インターフェイスの実装で例外をスローします

分類Dev

インターフェースのすべてのメソッドを実装しない

分類Dev

エクスポートされていないメソッドを持つインターフェースを別のパッケージに実装することは可能ですか?

分類Dev

直接アクセスがまだ可能であるのに、インターフェイスがポインター参照を持つメソッドを実装しないのはなぜですか?

分類Dev

エンドポイント用のアダプターはありません。エンドポイントに@Endpointアノテーションが付けられていますか、それともMessageHandlerやPayloadEndpointなどのサポートされているインターフェイスを実装していますか?

分類Dev

Javaでインターフェースメソッドを実装しない方法はありますか?

分類Dev

JDKのアップグレード後に新しいインターフェイスメソッドを実装することは避けてください

分類Dev

何もしないインターフェースメソッドを実装する

分類Dev

Javaコンパイラは、インターフェイスのすべてのメソッドが実装されているかどうかをどのようにチェックしますか?

分類Dev

スーパークラスが、子によって実装されることになっているインターフェイスメソッドを実装するのはなぜですか?

分類Dev

C#でインターフェイスのジェネリックメソッドを実装しているときに、奇妙なエラーが発生します。ここで何が問題になっていますか?

分類Dev

インターフェイスのクラスを知っているだけでインターフェイスを実装するクラスのオブジェクトをメソッドに渡し、それをArrayListに追加するにはどうすればよいですか?

Related 関連記事

  1. 1

    webstormにtypescriptインターフェースを実装すると、「実装されていないメソッド」エラーが発生します

  2. 2

    メソッドパラメータとしてまだ実装されていないインターフェイスを使用するクラスでJUnitテストを実行するにはどうすればよいですか?

  3. 3

    メソッドパラメータとしてまだ実装されていないインターフェイスを使用するクラスでJUnitテストを実行するにはどうすればよいですか?

  4. 4

    JpaRepositoryインターフェースの実装、そのメソッドがどこに実装されているかを理解したいですか?

  5. 5

    JpaRepositoryインターフェースの実装、そのメソッドがどこに実装されているかを理解したいですか?

  6. 6

    JpaRepositoryインターフェースの実装、そのメソッドがどこに実装されているかを理解したいですか?

  7. 7

    インターフェイスの実装されていないメソッドのエラーなし

  8. 8

    Groovyトレイトは、スーパークラスのすべてのメソッドを実装するように要求しますが、別のインターフェースに実装されています

  9. 9

    インターフェース参照を使用して、静的でない実装されていないメソッドを呼び出す

  10. 10

    インターフェイスの実装を共有しないインポートされたコンポーネントの適切なタイプ

  11. 11

    (明示的にそのインタフェースを実装せずに)インタフェースのメソッドを実装するクラスは、その特定のインターフェイスを拡張していますか?

  12. 12

    インターフェイスを返すメソッドがあるが、実装されていないエラーが発生するインターフェイスを実装する

  13. 13

    ビジネスロジックを実装するインターフェイスで宣言されていない場合にステートレスBeanメソッドを呼び出す方法

  14. 14

    例外:「ハンドラーのアダプターがありません。ハンドラーはコントローラーのようなサポートされているインターフェースを実装していますか?」

  15. 15

    抽象メソッドで本体が指定されていない-JDK8でコンパイル時エラーが発生するスーパーインターフェイスメソッドを実装しようとしているインターフェイス

  16. 16

    インターフェイスメソッドではないメソッドの実装を防止する

  17. 17

    インターフェイスに基づいてクラスメソッドを実装する

  18. 18

    メソッド引数が部分的にサポートされている場合は、インターフェイスの実装で例外をスローします

  19. 19

    インターフェースのすべてのメソッドを実装しない

  20. 20

    エクスポートされていないメソッドを持つインターフェースを別のパッケージに実装することは可能ですか?

  21. 21

    直接アクセスがまだ可能であるのに、インターフェイスがポインター参照を持つメソッドを実装しないのはなぜですか?

  22. 22

    エンドポイント用のアダプターはありません。エンドポイントに@Endpointアノテーションが付けられていますか、それともMessageHandlerやPayloadEndpointなどのサポートされているインターフェイスを実装していますか?

  23. 23

    Javaでインターフェースメソッドを実装しない方法はありますか?

  24. 24

    JDKのアップグレード後に新しいインターフェイスメソッドを実装することは避けてください

  25. 25

    何もしないインターフェースメソッドを実装する

  26. 26

    Javaコンパイラは、インターフェイスのすべてのメソッドが実装されているかどうかをどのようにチェックしますか?

  27. 27

    スーパークラスが、子によって実装されることになっているインターフェイスメソッドを実装するのはなぜですか?

  28. 28

    C#でインターフェイスのジェネリックメソッドを実装しているときに、奇妙なエラーが発生します。ここで何が問題になっていますか?

  29. 29

    インターフェイスのクラスを知っているだけでインターフェイスを実装するクラスのオブジェクトをメソッドに渡し、それをArrayListに追加するにはどうすればよいですか?

ホットタグ

アーカイブ