問題タブ [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 に答える
5085 参照

java - Java 8 で実行時に具体的な実装を選択する

どの実装/サブクラスをインスタンス化するかを選択するとき、特にインターフェイスが静的メソッドを持つことができるようになったことを考えると、if/をどこに置くべきかについては明確ではありません。switch

インターフェイスといくつかの実装によって定義されたタイプのサービスがあるとしましょう。そのロジックをサービスに入れるのではなく、ファクトリメソッドにしたほうがいいのではないでしょうか。しかし、この回答で提案されているように、パラメーターから型へのマップを使用して、インターフェイスまたは別のクラスに配置する必要がありますか?

それをインターフェースに入れるのは私には自然に思えます:

次に、サービスから呼び出すだけです。

しかし、インターフェースがその実装について知っているのが悪いのか、それとも親クラスがそのサブタイプについて知っているのが悪いのかはわかりません。そう

  1. そのロジックをどこに置くべきですか?
  2. タイプのサブクラスを選択している場合、それは大きく変わりますか?
0 投票する
2 に答える
3681 参照

vb.net - 関数が定義されているにもかかわらず、クラスに関数を実装する必要があるというエラー

エラーが発生します:Class 'QueryParameterComparer' must implement 'Function Compare(x As QueryParameter, y As QueryParameter) As Integer' for interface 'System.Collections.Generic.IComparer(Of QueryParameter)'.

このクラス定義について:

私もそれを完全に書き出そうとしました:

私は何が欠けていますか?

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

c# - C# で ICollection.CopyTo を実装する: 深いコピーか浅いコピーか?

を実装するカスタム クラスを作成していますIDictionaryが、どうすればよいかわかりませんCopyTo。各要素をターゲット配列にコピーするだけ (浅いコピー) にするか、各要素のコピー/クローンを作成してからターゲット配列に配置する (ディープ コピー) べきですか?

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

c# - インターフェイスの変更時に実装からインターフェイス メンバーを削除する

状況:

インターフェイスを暗黙的に実装し、インターフェイスのプロパティを削除します (後で)。実装クラスでこのプロパティを削除する必要があるという警告はありません。

インターフェイスを明示的に実装できることはわかっていますが、それを回避しようとします。


編集:(質問を追加)

通知/警告/...実装クラスのメンバーが不要になった可能性があることをどのように受け取ることができますか?

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

delphi - Delphi - インターフェイス内のインターフェイス

私はインターフェイスに関する初心者です。私はたくさんグーグルで検索しましたが、次の状況で何をすべきかわかりません。

私はお互いを使用するサーバーインターフェースを作成しました:

今、私はそれらのインターフェースを実装したいと考えています。

実装を追加しました。

しかし、私はまだ「インターフェイスメソッド IOfferline.GetPart の実装がありません。」

そして、私はその理由を理解できません。

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

dart - ファクトリメソッドが含まれている場合、抽象スーパークラスの実装にアクセスするにはどうすればよいですか?

サブクラスのインスタンスを返すファクトリを持つ抽象スーパークラスがあります。スーパークラスでのみ実装されるメソッドを持つことは可能ですか? たとえば、次のコードでは、Wind::act() を削除できますか?

Wind::act() を削除すると、見つからないというエラーが発生します。また、スーパークラスを実装するのではなく拡張する場合、サブクラスの実装を省略してもエラーは発生しません。しかし、ファクトリ メソッドでは、拡張はオプションではありません。

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

java - Java インターフェイスとその実装

PetSchool を実装するために DogSchool が必要な演習を行っています。私はペット学校に登録された動物の配列リストを作成するつもりであり、犬学校は犬を他の動物と区別する必要があります。犬の特徴は「わーわー」という鳴き声です。修正しました。しかし、それでも犬と猫を区別することはできません。

ティア = 動物

これはインターフェースのコードです。

問題は demoTest で発生します。

コンパイル後、次のように表示されます。

どちらの方が良いですが、それでも犬と猫を区別することはできません。

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

c# - インターフェイスに基づいて、VSにすべてのクラスでデフォルトのメソッドを実装させるにはどうすればよいですか

私は5つの方法を持っていて、それとインターフェースしています。

6 番目のメソッドを追加したいのですが、インターフェイスを使用するクラスごとにメソッドを手動で追加する必要はありません。

次のいずれかを実行できますか:

  1. クラスを実装する必要がないことをインターフェイスに伝えます。また
  2. VS に空のメソッドを各派生クラスに自動的に追加させます。

上記のいずれかが可能ですか?