問題タブ [marker-interfaces]
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.
oop - メソッドなしのインターフェースの使用
実際のコードを簡略化して、要点を示す最小の例にしました。セッター/ゲッター等の不足すみません。
顧客が順番に閲覧するWebページがいくつかあると想像してください。ここでの使用例は次のとおりです。-
- ユーザーは必要な本を選択します
- ユーザーは、郵便または電子メールで送信するかどうか、および関連する詳細を選択します
- システムは注文を履行します
この質問は、2つの配信方法に焦点を当てています。これは次のようにモデル化されます。
ここで、ページを閲覧するときにユーザーが入力した情報を表すために、次のクラスがあります。
ユーザーがWebページをステップスルーすると、情報はのインスタンスに保存されますPurchaseData
。ユーザーがページに戻ると、以前に入力した内容を表示できます。ユーザーが確認し、本を配達するときが来たら、またはdeliveryDetails
のインスタンスを参照します。PostalDeliveryDetails
EmailDeliveryDetails
結論として、ユーザーが自分の情報を確認すると、次のようになります。
Delivery
インターフェイスにメソッドがないのは困ります。
これは、電子メールと郵便配達の違いによって強制されます。
DeliveryDetails.deliver()
実装がSMTPサーバーアドレスのようなものを静的に取得することを強制するので、それは良い方法ではないと思います。これは懸念を混乱させます(配管とユーザーが入力した情報)。
任意のタイプのものを格納する必要がある場合は、ジェネリックスが役立ちます。PurchaseData<T extends Delivery>
PurchaseDataインスタンスの作成時に配信タイプが不明であるため、ジェネリック()を使用することはできません。とにかく、これは工場では役に立ちません。
この空のインターフェースは大丈夫ですか?このコードを設計するためのより良い方法はありますか?
java - オブジェクトの機能を識別するためのマーカー インターフェイスまたはブール メソッド?
私は Java クラスの大規模な階層を開発しています。そのうちのいくつかには、実行時に照会したい特定のプロパティがあります (プロパティは、特定のインスタンスではなくクラスにのみ適用されます)。
isFooBar()
プロパティが存在するかどうかを示すためにサブクラスが実装できる抽象ブール メソッドを作成できます。
または、代わりにマーカー インターフェイスを使用して、インターフェイスに対してチェックFooBarProperty
を行うこともできます。instanceof
または、AmitD によって提案されているように、注釈を使用することもできると思います。
各方法の長所と短所は何ですか。また、通常はどちらを優先する必要がありますか?
java - マーカー インターフェイス
誰かがJavaのマーカーインターフェースの契約を説明してもらえますか?
例:Clonable
がフィールド/メソッドのないマーカー インターフェイスの場合、どこにclone()
定義されていますか?
Clonable
を使用するたびになぜ i/fを実装する必要clone()
があるのですか?
私の質問は、 ifがクラスclone()
のメソッドである場合、なぜi/f を実装して overrideにするのかということでした。java.lang.Object
Clonable
clone()
誰かがこの Java の規則について詳しく説明できますか?
前もって感謝します
java - Comparable インターフェイスは、compareTo() メソッドを使用してどのようにマーカー インターフェイスになりますか?
メソッドを定義しているにもかかわらず、インターフェイスはどのようにComparable
マーカーインターフェイスですか? compareTo()
詳細を説明してください。
java - マーカーインターフェイスの作成とオブジェクトのシリアル化
serializable
decomplierのようなマーカーインターフェイスや、andのようなクラスを見てきobjectInputStream
ましたobjectOutputStream
。私の質問は、独自のマーカーインターフェイスを作成できるかどうかです。
はいの場合は、何か特別なことをしたいと思います。たとえば、オブジェクトをシリアル化と同じメカニズムでシリアル化したいのですが、インターフェイスを使用します。
私がクロスチェックしたのは、objectOutputStream
彼らが下の演算子のインスタンスをチェックしているということですwriteobject()
マーカーインターフェイスを作成する方法と、マーカーインターフェイスを実装し、シリアル化の特別な処理を行う独自のクラスを作成する方法を教えてください。
java - 注釈はマーカーインターフェイスを完全に置き換えることができますか?
マーカーインターフェイスは、クラスをマークするだけで主に役立つため、アノテーションを使用して同じことを実現できます。たとえば、Cloneable
インターフェイスは@Cloneable
。
それで、マーカーインターフェースの必要性はまだありますか、それともアノテーションによって置き換えることができますか?それらのいずれかを使用することの長所/短所はありますか?つまり、どちらか一方を優先するということですか?
java - Java:シリアライズできるものとできないものは?
インターフェイスが、Java のクラスに関するある種のメタデータを渡すために使用されるSerializable
単なるマーカー インターフェイスである場合、少し混乱します。
Java のシリアライゼーション アルゴリズムのプロセス (メタデータを下から上へ、次に実際のインスタンス データを上から下へ) を読んだ後、そのアルゴリズムではどのデータを処理できないかがよくわかりません。
要するに正式には:
- 原因となる可能性のあるデータは何
NotSerializableException
ですか? implements Serializable
クラスに句を追加することになっていないことをどのように知る必要がありますか?
java - Null vs マーカー インターフェイス
JavaのNullインターフェースとMarkerインターフェースの主な違いは何か、誰でも詳しく説明できますか? あるインタビューでこんな質問をされました。
ありがとう。
c# - マーカー インターフェース: インターキャスト可能にする
流暢な API の拡張メソッド用に 3 つのマーカー インターフェイスがあります。
および次の拡張メソッド:
質問:キャストせずに obj を返すことは何とか可能ですか? 通常、この状況では明示的にダウンキャストする必要がありますが、これらのインターフェイスのいずれも、基礎となるオブジェクトに何らかのメソッド/プロパティ/その他のものを要求するものではありません。
注: 実際の実装クラスは、すべてのインターフェイスを実装します。
質問 2: なぜ implementationが自動的に実装を type にもしないのIOne
ですか?ITwo
IOneOrTwo
c# - INamingContainerの実現方法、もっと深いことを教えてください
カスタム コンテナ コントロールを実装したい場合は、コントロールを INamingContainer から継承し続ける必要があります。これは、マーカー インターフェイスとして定義されたインターフェイスです。私が知っているように、CLR は属性のようなメタデータにコントロール ステートメントを作成します。
だから、知りたい:
.net フレームワーク システムは、それ自体のマーカー インターフェイスのメタデータを作成しただけですか? マーカー インターフェイスを作成できますか?
CLR コンパイラが INamingContainer から継承したコントロールをコンパイルするとどうなりますか?
コンテナ制御のためのINamingContainerの機能は何ですか?
よろしくお願いします!</p>