問題タブ [class-hierarchy]

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 投票する
1 に答える
241 参照

scala - サブクラスのみを受け入れるscalaで構造型を行うにはどうすればよいですか?

問題を言葉で説明する代わりに、私がやりたいことを示すScalaインタープリターセッションを紹介します。

したがって、基本的には、特定の型のサブクラスであり、シグネチャを持つメソッドも含むパラメータで型を定義したいと思います def name():String

注:クラス階層はすでに複雑になっているため、この方法で実行しようとしています。これを考えると、私は追加しないか、それを回避できるParentWithName abstract classかどうかを好みます。trait

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

delphi - クラス階層を分析し、メソッドの祖先を照会できる Delphi 6 用のユーティリティはありますか?

アプリケーションのクラス階層を分析し、特定のメソッドに関する質問に答えることができる Delphi 6 用のツールはありますか? 特定のメソッド名を取得できるツールを使用すると、呼び出し階層内のどのクラスがそのメソッドを実装しているか、各継承レベル (抽象、オーバーライドなど) でのメソッドの特性、各レベルでの呼び出しの本体が表示されます。メソッドの実装が単なるスタブである場所と、各実装が継承されたメソッドを呼び出すかどうかを確認できます。

0 投票する
4 に答える
7475 参照

java - Javaで親タイプにキャストするときに、子メソッドを呼び出す

私は私が終わらせようとしているいくつかのコースの仕事に問題があります、そしてどんな助けもいただければ幸いです!

抽象型「アカウント」を拡張する3種類のアカウントがあります。[CurrentAccount、StaffAccount、MortgageAccount]。

ファイルからいくつかのデータを読み込み、ユーザーオブジェクトとともにアカウントオブジェクトを作成して、プログラム内に保存されているハッシュマップに追加しようとしています。

アカウントオブジェクトを作成するときは、Accountタイプの一時変数を使用し、読み込まれたデータに応じてそのサブタイプを定義します。

例えば:

問題は、MortgageAccount。タイプに属するメソッドを呼び出そうとしたときです。

各タイプの一時変数、StaffAccount MortgageAccountおよびCurrentAccountが必要であり、それらのメソッドを使用するためにそれらを対応して使用しますか?

前もって感謝します!

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

java - クラス階層でメソッドを呼び出す方法は?

別のクラスから拡張されたこのスーパークラスがあります

他のクラスはISIRFinderAction、から拡張されますAbstractDOEMessageDashboardAction

何か不足していますか?なぜ機能してgetQueryいません。クラス階層で検索すると思いました。

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

nhibernate - 2 つの戦略を使用した流暢な nhibernate によるクラス階層のマッピング

流暢な nhibernate または nhibernate 自体 (つまり hbm ファイル) を使用して、クラスごとのテーブル戦略と階層ごとのテーブル戦略を組み合わせたいのですが、方法がわかりません。私は hbm よりも fluent の方が好きですが、それが無理なら hbm でも構いません。エンティティを ClassMap として導入し、その他すべてを流暢な SubClassMap として導入してこれをテストしましたが、流暢に生成された hbm ファイルでは、エンティティはクラスであり、他のすべては私が望んでいない結合クラスでした。この問題については、以下で詳しく説明します。

クラス階層:

エンティティ用に 1 つのテーブル、人用に 1 つのテーブル、およびそのすべての種類 (すべてのサブクラス) が必要です。つまり、Entity にはクラスごとのテーブル戦略を使用し、Person および SystemUser クラスには階層ごとのテーブル戦略を使用したいと考えています。データベース構造は次のようなものです。

助けていただければ幸いです。

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

design-patterns - より高いクラスの階層とより広いクラスのスペクトル

「グッドプラクティス」の質問があります:

リストタイプが多い場合を考えてみましょう

  1. イベントを含むIObservableList

  2. IReadOnlyList読み取り専用

  3. ISomeList追加の操作を実行するいくつかのリスト

のような6つのクラスを定義する方が良いですか

  1. ObservableList:IList

  2. ObservableReadonlyList:IList

  3. ObservableSomeList:IList

  4. ReadonlyList:IList

  5. ReadonlySomeList:IList

  6. ObservableReadonlySomeList:IList

また

3つのクラスを使用してお互いを適応させる:

  1. ReadOnlyListAdapter:IList

  2. ObservableListAdapter:IList

  3. SomeListAdapter:IList

とインスタンス化

IList MyObservableReadonlySomeList = new ReadonlyListAdapter(new ObservableListAdapter(new SomeListAdapter)));

ノート:

私は6つのクラスの方が好きな傾向がありますが、クラスに6つまたは7つのプロパティがある場合はどうなりますか?30〜50クラス?

ありがとう、よい一日を...

0 投票する
5 に答える
11963 参照

c++ - 複数レベルの継承階層ですべてのクラスに「純粋仮想」メソッドの実装/オーバーライドを強制する

C++ では、純粋な virtualメソッドが強制的なオーバーライドを直接の子 (オブジェクト作成用)のみに強制し、孫などには強制しないのはなぜですか?

この機能を除外しても大したことはないと思います。
たとえば、言語設計の観点から、 のような明示的なステートメントがある場合にのみstruct DD使用が許可される可能性がありました。それ以外の場合は、強制をオーバーライドする必要があります。D::foousing D::foo;foo

C++ でこの効果を得る実用的な方法はありますか?

0 投票する
4 に答える
213 参照

ide - Pharo / Squeak-特定のクラスの特定のメソッドの実装をすばやく参照するにはどうすればよいですか?

「コピー」がDictionaryクラスにどのように実装されているかを確認したいとします。現在、システムブラウザーを使用して、指定されたメッセージを実装するクラスが見つかるまで、継承階層を手動でトラバースします(ボトムアップ)。適切な場所でシステムブラウザを開く、ワークスペース用のワンライナーはありますか?

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

inheritance - Smalltalk の「安全な」メソッドをプログラムでプッシュダウンする

特に、サブクラスが 1 つしかなく、スーパークラスでメソッドを維持する理由がない場合に、どのメソッドをスーパークラスからサブクラスに安全にプッシュできるかを収集したいと考えています。

これらのメソッドを (実行中に) 動的に検出して、どのメソッドがスーパークラスで実行されているかを確認し、サブクラスが 1 つしかない場合にプッシュ ダウンできるかどうかの問題になる可能性があります。誰かがこれをやったのですか?多分ツールはありますか?

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

c# - 検証エラー階層設計

私たちのシステムには、Productさまざまなカスタムプロパティを持つ可能性のあるエンティティがあります。プロパティのセットは製品ごとに異なる場合があり、タイプのフィールドに格納されList<Property>ます。プロパティはさまざまなタイプ(strings、ints、double)であり、いくつかの特別な特性を持っている場合があります。たとえば、複数値、特定の範囲の値、指定されたリストの値などです。プロパティの値は常に次の場所に含まれます。文字列フィールドValue

現在の私の現在の問題は、これらのプロパティの検証を実装することであり、検証結果の表示の一部としてどのようなアプローチを取るかということに固執しています。私が満たさなければならない要件:-検証の結果は他のアプリケーション層で使用されるため、結果のAPIは明確で使いやすい必要があります-各エラーは明確に表現されている必要があります-APIのユーザーは理解するのに十分な情報を持っている必要がありますエラーの詳細(たとえば、範囲エラーの場合は、可能な最小値、可能な最大値、および実際の値を指定する必要があります)

これまでに検討したアプローチは次のとおりです。

  1. クラス階層。基本抽象クラスが1つありValidationError、それぞれの特定のエラーは継承されたクラスに反映されます。エラーに詳細がある場合、対応するクラスには、すべての情報を格納するために必要なフィールドがあります。例:

    このアプローチは、実際には空のクラスがさまざまであるため、私にはかなり冗長に思えます。さらに、そのようなAPIの使用法は正しくないようです(if (typeof(error) == typeof(RangeValidationError))-ナンセンス!)。しかし、これが私の頭に浮かんだ最初のことです。

  2. エラーの列挙と、必要に応じてクラス階層。すべてのエラーは列挙で表されます。ほとんどの場合に使用されるクラスが1つありValidationError、特定のエラーに追加情報が必要な場合は、基本的に最初のアプローチと同じ方法で継承者が作成されます。例:

    このアプローチははるかに良く見えますが、欠点もあります。最大の問題は、APIユーザーとして、たとえばタイプのエラーが発生した場合、ValueNotWithinRangeタイプのクラスを処理していることを保証できないRangeValidationErrorことです。そうでない場合は、どのように処理しますか?理想的には、私はAPIを開発する唯一の人物ではないので、そのような状況が存在することさえも防ぐような設計レベルの機能が欲しいと思います。このアプローチのもう1つの問題は、ほとんどのエラーが最終的に追加情報を必要とする場合、最終的に同じアプローチ番号1になることです。

誰かがこれらの2つのアプローチについて共有したり、より良いアプローチを提案したりする考えがありますか?ご回答いただければ幸いです。前もって感謝します。