問題タブ [interface-implementation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
183 参照

java - ジェネリック ファクトリの実装

プラグ可能なインターフェイスのファクトリを設計しようとしています。ファクトリ インスタンスを取得すると、ファクトリはその特定の実装に適切なサブクラスを返すという考え方です。

この場合、サブクラスではなく文字列を使用して ID コードを表すサード パーティ ライブラリをラップしています。したがって、ライブラリをラップする実装では、すべての実装クラスにgetCode()インターフェイス API で明示的に必要とされないメソッドがあります。enumコードとインターフェイス クラス間のこのマッピングを格納するために を使用しています。

ほとんどの場合、このgetCode()メソッドは必要ありません。ただし、実装パッケージのごく一部の状況で、そのメソッドにアクセスする必要があります。したがって、私の問題は、特定の Factory 実装への参照がある場合にメソッドが存在することを呼び出し元に伝える Factory 実装の署名を持たせたいことgetCodeです。

以下は、状況をsscceに消化するために最善を尽くした多くのコードです。非常に長いことは承知していますが、見た目よりも単純で、sscce の単語の 1 つに「完全」があります。

公開 API:

ユースケースの例:

実装の SSCCE バージョン:

列挙型コードマッパー:

実装パッケージ内のサンプル ユース ケース:

工場での試み:

これは、リターンが常に実装されることを指定するものではありませんICode。しかし、渡されたインターフェイス クラスは を実装ICodeしていません。それが要点です。

私は何をすべきか?

0 投票する
0 に答える
43 参照

visual-studio-2010 - インターフェイス/抽象クラスを自動実装するときに、Visual Studio は FQN の代わりにインポートを追加できますか?

質問が示すように、型名の恐ろしい FQN の代わりに「using」ステートメントを追加するように VS 2010 Professional に指示するための何らかの設定 (存在する場合) を探しています。Resharper などを提案しないでください。組み込みのソリューションに興味があります。ありがとうございました。

0 投票する
3 に答える
1474 参照

c# - C# のパラメーターの 1 つとしてインターフェイスを持つメソッドを呼び出すにはどうすればよいですか?

次の方法があります(サードパーティのSDKメソッドがDLLに実装されています):

インターフェイス パラメータは次のとおりです。

このメソッドを関数から呼び出したい。このメソッドを呼び出すときに、オブジェクトを最初のパラメーターとして渡す方法を知っています。しかし、どうすれば 2 番目のパラメーター (インターフェース) を渡すことができますか。どんな助けでも大歓迎です。

0 投票する
1 に答える
514 参照

c# - 共通インターフェイスを「継承」(実装) するインターフェイスを実装していますか?

4 つすべてを実行できるグランド タートルを作成したい場合はどうすればよいですか? 私はコーディングしたい:

これは可能ですか?今では、それぞれ 4 回実装する必要があるようFight()ですEatPizza()。しかし、これら 2 つの共通機能は解決され、一度実装するだけで済むと思いますよね?

を継承せずに 4 つの中間インターフェイスを作成してITurtleから、GrandTurtle実装することもできましたITurtleITurtleこれにより、インターフェイスの継承の問題は解決されますが、5 番目の兄弟のように見えるため、意味的に間違っているように見えます。さらに、タートル固有のクラスを作成できるようにしたいと考えていますclass BostonLeonardo : ILeonardo

私は多くの場所から読みましたが、それは終わりのない議論のようです.「インターフェース内の継承」は完全に問題ないと言う人もいれば、そうではないという人もいます.どうして。

0 投票する
3 に答える
1181 参照

c# - 2 回実装されたインターフェイスは「型が統一される可能性があります」。なぜこの回避策が機能するのですか?

次のように、同じクラスに対してインターフェイスを 2 回実装しようとすると、コンパイラ エラーが発生しました。

エラー:

'Mapper' は 'IMapper' と 'IMapper' の両方を実装することはできません。これらは一部の型パラメーターの置換で統合される可能性があるためです。

この回避策が機能するのはなぜですか? 私は問題を解決したのか、それとも単にコンパイラを騙したのか疑問に思っています.

編集MyClass: 、MyClassBase、およびIMyInterfaceMapperMapperBase、および に更新してIMapper、この問題が発生する可能性があるより現実的なシナリオを表します。

0 投票する
2 に答える
40 参照

java - パラメータとしてのオブジェクト?

以前、Java でサブクラスごとにクラスを実装することについて質問したことがありますが、別のアプローチが使用されていることがわかりました (私にとっては別の方法です!) URL:こちら

クラスがパラメーターとして渡されたため、この行は私にとって混乱を招きました。さて、ここで質問する前に、試して理解しようと思いました。これが私のコードです:

そして次のクラスではparameterObject、パラメータとして渡すメソッドを使用しました(bjueJ環境で)

メソッドを呼び出すと、testFunction(...)パラメーター値を要求され、入力し"arpan",19 and 20ました。エラー:予想される..次にnull、objectParameterに使用しようとすると、JVMがnullPointExceptionエラーをスローしました..何が起こるはずで、何が私の理解に欠けていますか? 助けてください。