問題タブ [abstract-class]
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.
c# - 抽象クラス - 私はこれを考えすぎていますか、それとも正しくやっていますか?
そのため、CollectionBase をカスタム コレクションの継承クラスとして利用しています。知識を繰り返さないように(DRYの原則に従って)、抽象クラスを介してCollectionBaseを利用しています。抽象クラスもジェネリック クラスとして定義されます。クラスを実装する方法は次のとおりです。
私はこれを利用しているので、これらの基本メソッドを 10 以上のクラスに実装する必要はありません。
私の質問は、次のように Equals メソッドをオーバーライドするときに、これをやりすぎているかどうかです。
アブストラクトで多くのことを達成しようとしていますか、それとも正しい方法で行っていますか?
編集:これは.Net 2.0用に書かれており、LINQなどを利用するために3.5にアクセスすることはできません
actionscript-3 - 抽象クラスとインターフェイスのどちらを使用するかをどのように決定しますか?
私は OOP、デザイン パターン、アクション スクリプト 3 の世界に深く入り込んでいますが、Abstract クラス (Abstract クラスをサポートしていない AS3 の擬似) とインターフェイスをいつ使用するかを知る方法にまだ興味があります。私にとって、どちらも特定のメソッドが特定のクラスに実装されていることを確認するテンプレートとして機能します。違いは、Abstract クラスには継承が必要であり、Interface は単に拡張するだけであるという事実だけですか?
ありがとう、ブライアン・ホッジ hodgedev.com
c++ - 具体的なクラスの個別のヘッダー ファイル - C++
バックグラウンド
次のような抽象クラスがあります
DoConversionメソッドを実装するだけの多くの具体的なクラスがあります。
このような多くの具体的な実装があります。抽象クラスIConverterを持つCharacterConverter.hなどのヘッダー ファイルを作成しました。
質問
私の具象クラスはDoConversionメソッドを実装するだけなので、具象クラスごとに個別のヘッダー ファイルを作成する必要がありますか? つまり、すべての具象クラスに対してImageConverter.h、TextConverter.hなどを作成する必要があるということですか? これらすべてのヘッダー ファイルには、IConverter抽象クラスのような同じコードが含まれます。
何かご意見は?
c# - 不明なクラスのシリアル化と復元
基本プロジェクトには、抽象基本クラス Foo が含まれています。別のクライアント プロジェクトには、その基本クラスを実装するクラスがあります。
基本クラスでいくつかのメソッドを呼び出して、具体的なクラスのインスタンスをシリアル化および復元したいと思います。
逆シリアル化の時点で、必要なすべてのクラスが存在すると想定できます。何らかの方法で可能であれば、シリアル化は XML で行う必要があります。基本クラスに IXmlSerializable を実装させることは可能です。
ここでちょっと立ち往生しています。私の理解が正しければ、これは[XmlInclude(typeof(UnknownClass))]
すべての実装クラスの基本クラスに を追加することによってのみ可能ですが、実装クラスは不明です!
これを行う方法はありますか?リフレクションの経験はありませんが、リフレクションを使用した回答も歓迎します。
編集:問題はデシリアライズです。シリアル化するだけで簡単になります。:-)
c++ - テンプレートまたは抽象基本クラス?
クラスを適応可能にし、外部からさまざまなアルゴリズムを選択できるようにしたい場合、C++ での最適な実装は何ですか?
主に2つの可能性があります。
- 抽象基本クラスを使用し、具体的なオブジェクトを渡します
- テンプレートを使用する
以下は、さまざまなバージョンで実装された小さな例です。
バージョン 1:抽象基本クラス
バージョン 2a:テンプレート
バージョン 2b:テンプレートとプライベート継承
Java 出身の私は当然、常にバージョン 1 を使用する傾向がありますが、STL コードなどでは、テンプレート バージョンが好まれることが多いようです。それが本当なら、メモリ効率など(継承なし、仮想関数呼び出しなし)のためだけですか?
バージョン 2a と 2b の間に大きな違いはないことを認識しています。 C++ FAQを参照してください。
これらの可能性についてコメントいただけますか?
c# - 抽象クラスに基づく WCF サブクラスの公開
サブクラスも WCF サービスとして開始できるように、WCF に公開できるようにしたい抽象クラスがあります。
これは私がこれまでに持っているものです:
コードでサービスを作成しようとするとき、次の方法を使用します。
親をサービスのタイプとして使用すると、
The contract name 'Parent' could not be found in the list of contracts implemented by the service 'Parent'.
OR
が得られますService implementation type is an interface or abstract class and no implementation object was provided.
そして、私が得るサービスのタイプとして子を使用するとき
The service class of type Namespace.Child both defines a ServiceContract and inherits a ServiceContract from type Namespace.Parent. Contract inheritance can only be used among interface types. If a class is marked with ServiceContractAttribute, then another service class cannot derive from it.
WCF 属性を具体的に追加する必要がないように、子クラスで関数を公開する方法はありますか?
編集
だからこれ
チャイルドリターンでサービス開始
The contract type Namespace.Child is not attributed with ServiceContractAttribute. In order to define a valid contract, the specified type (either contract interface or service class) must be attributed with ServiceContractAttribute.
mocking - Rhino で抽象クラスのデフォルトの動作をモックする
私はモックにかなり慣れていないので、これはまだ理解していないだけかもしれませんが、どこにも良い例が見つかりません。
デフォルトでは、抽象クラスから継承するクラスはコンストラクターでコレクションをインスタンス化することを主張しようとしています。抽象クラスは次のとおりです。
これを Rhino でモックするにはどうすればよいですか? (またはスタブ) を実行GenerateMock<DataCollectionWorkflow>
すると、コンストラクターが実行され、モックのプライベート フィールド " _params
" が初期化されますが、モックの " Parameters
" プロパティは単に null になります。
明らかに、生成されたモック サブクラスがプロパティの実装をオーバーライドしています。Parameters プロパティの再実装を除外する方法はありますか?
ありがとう。
c# - 実用的な例で、抽象クラスとインターフェースの使用法を理解するのを手伝ってもらえますか?
抽象クラスと継承の使用についてほとんど単純化した理解を与えてくれて、概念と実装方法を本当に理解できるように助けてくれませんか?完了しようとしているプロジェクトがあり、実装方法に迷っています。私は教授とおしゃべりをしていて、それを理解できないのなら、おそらくコースの準備ができていないと言って、かなり言われました。prerequestiteコースをカバーしましたが、これらの概念を理解するのにまだ苦労しています。
明確にするために、私がこれまでに行ったプロジェクトは以下のとおりです。犬・猫のクラスなどはまだ記入していません。ポインタを教えてください。私は誰かに「答え」を教えてくれるように求めているのではありません。私はこれでどこに行くのか迷っています。私はオンラインコースを受講していますが、彼とのコミュニケーションの取り組みは厄介です。他のすべてのコースで4.0を終えたばかりなので、努力を惜しまないのですが、これらの概念の理解と実際の適用方法に迷っています。
このプロジェクトをさらに進めるためのコメントやヘルプはありますか?
私が実装するものの説明は次のとおりです。
概要:
この演習の目的は、インターフェース、継承、抽象クラス、およびポリモーフィズムの使用法を示すことです。あなたの仕事は、提供されたプログラムシェルを取得し、適切なクラスと対応するクラスメンバー/メソッドを追加して、このプログラムを正しく機能させることです。提供されているコードを変更することはできません。自分で作成したクラスのみを追加できます。プログラムを機能させる方法はたくさんありますが、インターフェース、
継承、抽象クラス、およびポリモーフィズムの使用法を示す手法を使用する必要があります。繰り返しになりますが、明確にするために、提供されたコードに追加することはできますが、変更または削除することはできません。提供されるコードは、追加のコードをほとんど使用せずに機能し、演習の要件を満たします。割り当てが正常に完了すると、プログラムは実行時に次のステートメントを出力する必要があります。
私の名前はスポットです、私は犬です
私の名前はフェリックスです、私は猫です
要件:
1)DogクラスとCatクラスの派生元である「Animal」と呼ばれる抽象基本クラスが必要です。
2)Animal基本クラスは、インターフェイス'IAnimal'から派生する必要があります。これは、IAnimalから派生する必要がある唯一のクラスです。
3)すべての動物には名前があり、名前は犬や猫に固有の属性ではないため、動物
基本クラスは、名前が格納され、WhatIsMyNameget-propertyが実装される場所である必要があります。
4)動物の基本クラスからのみ派生するDogクラスとCatクラスを作成する必要があります。
5)DogクラスとCatクラスは、WhatAmI get-propertyを実装し、適切な文字列値を返す必要があります。
変更できないコード:
///////////////////////
私がこれまでに書いたコード:
c# - 抽象クラスの逆シリアル化
UI の JavaScript で作成した抽象クラス「サーバー」があり、Web サービスに次のことを行うメソッドが必要です。
私が抱えている問題は、サーバーが抽象的であるため、逆シリアル化できないことです。具象型から継承するサーバーごとにメソッドが必要ですか?
何が最善の解決策なのかわからないので、助けていただければ幸いです
私が受け取る正確なエラーは次のとおりです。
抽象クラスのインスタンスは作成できません。