問題タブ [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 投票する
3 に答える
20945 参照

java - Javaクラス階層図を生成するアプリケーション

次のようなツールを探しています。

  • 視覚的に心地よい (派手ではない) 直交構造のグラフ階層を生成します。
  • 高品質の PNG 画像を出力します (300dpi+)
  • クラス、抽象クラス、インターフェイス、および列挙型を視覚的に区別する (できれば色で)
  • インタラクティブなユーザー インターフェイス
  • ダイアグラムからパッケージや個々のクラスを削除できます
  • 次のセットを使用する シード (例: File » Open ):
    • ディレクトリ
    • JAR ファイル
    • 個々のソース ファイル
    • 個々のコンパイル済みクラス
  • クラスの依存関係の完全自動分析を実行します
  • クラスパスを検索して、可能な限り多くの満たされていない依存関係を解決します
  • 単一の実行可能ファイルを使用
  • 軽量 (~5MB) で高速 (平均的な 1.5 GHz マシンで 1 秒未満でロード)
  • シンプルです (10 回のクリックでグラフを生成できます)
  • 速い (数秒で 100 個のオブジェクトをグラフ化)
  • 使いやすい(最小限のインターフェース、グラフ生成に重点を置いている)
  • OSS か GPL か
  • (オプション) コールグラフ階層を生成します

このタスクを実行できないツールには、次のものがあります。

  • Doxygen + GraphViz (またはドット)
  • エクリプス
  • UML モデラー
  • Structural Analysis for Java (ソース ファイルを解析できません)
  • JUDE コミュニティ (おかしなインターフェース、不適切な自動生成)
  • 統合された開発環境 (複雑すぎる、メモリを使いすぎる)

何か案は?

0 投票する
8 に答える
20955 参照

c# - 継承を使用してC#ディープコピーコンストラクターを実装する必要があります。どのようなパターンから選択できますか?

クラス階層のディープコピーをC#で実装したい

これは、子のクローンを作成する場合、親のみが新規作成された場合のようには機能しません。私のコードでは、いくつかのクラスに大きな階層があります。

これを行うための推奨される方法は何ですか?基本クラスを呼び出さずに各レベルですべてを複製するのは間違っているように思われますか?この問題にはいくつかのきちんとした解決策があるはずです、それらは何ですか?

みんなの答えに感謝してもいいですか。いくつかのアプローチを見るのは本当に面白かったです。誰かが完全性のための反省の答えの例を挙げたらいいと思います。+1待ち!

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

ruby - rubyは、階層呼び出しを表示するメソッドを提供しますか?

それがすべてです、私は固定クラスを継承するクラスが何であるかを見たいです。RUBYにこれを行う方法はありますか?

Aptanaはこれを示すオプションを提供していますが、方法はありますか?

ありがとう

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

hierarchy - 非親子ディメンションに階層を作成

キューブに AdventureWorksDW を使用して製品ディメンションのユーザー階層を作成しています。Product Key、ProductCategory Key、Product Subcategory Key 属性を追加しました。ただし、[属性] ウィンドウの Dim Product にマウス ポインターを合わせると、常にツールヒントとして「非親子ディメンションで階層を作成する」という警告が表示されます。

0 投票する
7 に答える
1256 参照

c# - 実行時にC#でフィールドのタイプを変更する

私には既存のクラスの階層があり、次のように言います。

これらのクラスは、逆シリアル化によってインスタンス化されます。

ただし、ライブラリの特定のユーザーのEmployeeに追加のフィールドを公開する必要があります。つまり、次のように言います。

問題は、「Business」を拡張するクラスを作成することはできないということです。これは、「Employee」クラスに追加したいためです。

私が見ているように、私には2つの選択肢があります。

  1. 'Special'クラスで階層を複製します。つまり、各「特別」クラスには、元のクラスのコレクションと新しい「特別」クラスのコレクションがあります。

    /li>
  2. どういうわけか、逆シリアル化の目的で、実行時に「Employee」を「SpecialEmployee」に再入力します。すべての「Employee」オブジェクトをSpecialBusinessから「SpecialEmployee」にコードベースでキャストできることを知ってください(おそらくヘルパーメソッドを使用してそれを明確にします)。

この問題に対処する方法について何かアイデアはありますか?

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

c# - 子クラスの単体テスト

この非常に単純なクラス階層があるとします。

クラスAddのテストを書くとき、メソッドのテストを書くべきですか? それとも、クラスMoreMathをテストしているときだけそのメソッドを気にする必要がありますか? SomeMathより一般的に: クラスのすべてのメソッドをテストする必要がありますか、それとも「新しい」メソッドのみをテストする必要がありますか?

両方の理由をいくつか思いつくことができます。たとえば、すべてのメソッドをテストすると、同じことを複数回テストすることになりますが、これはあまり良くなく、退屈になる可能性があります。ただし、すべてのメソッドをテストしないと、変更によって?SomeMathの使用法が壊れる可能性があります。MoreMathこれも悪いことです。ケースにもよると思います。私が制御できるかどうかにかかわらず、クラスを拡張するかのように。とにかく、私は完全なテストの初心者なので、これについて私が考えるよりも賢い人を知りたいです:-)

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

design-patterns - What design should I use so a class can query one of it's ancestors?

I'm creating an object hierarchy that is representing a table that is draw on a control. My hierarchy looks like this :

I want to have an option (a parameter) on the table to filter the column (cells) displayed. The client code can do something like this:

Displaying and placing cells on the control is the responsibility of the Lines objects.How can I pass the informations of which cells are to be displayed from the Table object to the Line object?

Should I give each line a reference to the table object? Should I try to pass the informations to each lines through the hierarchy each time Table.ShowColumns() is called?

There must be an elegant way?

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

java - クラス階層を持つSpring JDBC RowMapper

Spring JDBC を使用したクラス階層のマッピングに関して、コミュニティが「ベスト プラクティス」と見なしているものを知りたいと思いました。

本格的な ORM ツールを使用することはできませんが、Spring JDBC を使用して、JDBC の退屈な性質を軽減しています。非常に頻繁に利用するクラスの 1 つに BeanPropertyRowMapper があります。これは、使いやすさと、結果セットから型を区別しない Bean プロパティへのアクセスを可能にする機能のためです。

すべてが 1 つのテーブルにマップされるクラス階層があります (この小さなクラス階層では、階層ごとのテーブル アプローチを採用しています)。そのため、テーブルには、実際にインスタンス化する必要があるクラスを決定するために使用できる classId 列が含まれています。元。1 = マネージャー、2 = 従業員、3 = 請負業者。これらはすべて「人物」ですが、人物の各サブクラスには、そのクラスに固有のいくつかの属性があります。

私の最初の考えは、BeanPropertyRowMapper のサブクラスを作成し、このロジックを挿入して、「列 A = 1 の場合は Manager をインスタンス化し、通常のバインディングを実行する」ということです。

これは合理的なアプローチのように思えますか? あなたのために働いた他の提案はありますか?

0 投票する
8 に答える
2956 参照

java - Java:親にキャストせずに子を受け入れるメソッドを作成するには?

タイトルどうしようか迷う…

、、、の 3 つの子クラスがありEventます。どういうわけか、私は子供の 1 人のオブジェクトを取得します。ここで、その子イベントを別のオブジェクトのメソッドに送信して、メソッドでデータを取得できるようにします。データのプルはイベントのタイプに固有であるため、メソッドは子にのみ存在します。WeightEventTimedEventRepEventgetSavedEvents()

私はから始めました

Eventしかし、それは私の子オブジェクトを(親)オブジェクトにキャストします。

3 つの異なるメソッドを記述することの不足を回避する方法はありますか。子供たちに一人ずつ?

アドバイスをありがとう。

-ジョン

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

domain-driven-design - ドメイン駆動設計 - エンティティ VO とクラス階層

質問の短いバージョン: 「2 つのサブクラスを持つスーパークラスを持っても大丈夫ですか。1 つはエンティティで、もう 1 つは値オブジェクトですか?」

より長いバージョンへ: T にはTeamスーパークラスがあります。チームには、MasterHelpers、およびCodeがあります。次に、 TeamのサブクラスであるDefaultTeamを持っています。これは、独自の **Code**** を持つエンティティであり、ドメイン ID を持っています。次に、 **ExecutionTeam を持っています。これはTeamのサブクラスであり、追加の属性OriginalTeamがあります。

ExecutionTeamは、 Taskを実行するチームです。Taskを実行する必要がある場合は、 DefaultTeamを選択して実行します。ただし、 DefaultTeamからヘルパーを変更できます(マスターは変更されません)。

タスクを実行するチームは、 DefaultTeam ( OriginalTeam )のバリエーションですが、そのタスク専用に選択されたヘルパーを持ちます。

ExecutionTeamには、 OriginalTeam と同じコードが含まれます。したがって、ExecutionTeam には一意の ID がありません同じDefaultTeamによるタスクの実行が 10 回ある場合、同じコードを持つ (同じOriginalTeamを持つ) 10 個のExecutionTeamsが存在します。したがって、ExecutionTeamをエンティティにすることはできません。

しかし、同じスーパークラス (両方ともチーム) を共有するエンティティと値オブジェクトを持つことは、少し奇妙です。おそらく、このドメイン モデルには何か問題があります。

意見が必要です。

ありがとう