問題タブ [subclass]

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

objective-c - Objective-C でのサブクラス化は悪い習慣ですか?

多くのブログ、フォーラム エントリ、およびいくつかの Apple ドキュメントを読んだ後でも、Objective-C で広範なサブクラス化を行うことが賢明かどうかはまだわかりません

たとえば、次のケースを考えてみましょう。

要素の多いパズル ゲームを開発しているとします。これらの要素はすべて、ある程度同じ動作を共有します。次に、要素のコレクション内で、要素のさまざまなグループが同等の動作を共有し、グループをグループから区別するなど...

それで、何を何から継承するかを決定した後、忘却からサブクラス化することにしました。そして、なぜ私はすべきではないのですか? このモデルで一般的な動作を簡単に微調整できることを考えると、OOP の目的を達成できたと思います。

しかし、- これが私の質問の源です- Apple は、サブクラス化を支持してデリゲート、データ ソース メソッド、非公式プロトコルの使用について言及しています。本当に頭がおかしくなるのはなぜですか?

2つのキャンプがあるようです。サブクラス化に賛成の人、そうでない人。どうやら個人の好みによるようです。大規模にサブクラス化することと、大規模にサブクラス化しないことの長所と短所は何ですか?

まとめとして、私の質問は簡単です。私は正しいですか? そして、なぜ、またはなぜではないのですか?

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

qt - Qtシグナルと継承の質問

私はQtを使ったプログラミングに比較的慣れていないので、質問がありました。短縮版:

スーパークラスで定義された信号を継承するにはどうすればよいですか?

他の誰かがうまく作成したQTWidgetsをサブクラス化して、デフォルトの動作の一部を変更しようとしています。

問題はQObject::connect行にあります。私がやりたいのは、rotationChanged SIGNAL(qwt3D_plot.hから)をローカル関数/SLOT-"myRotationChanged"に接続することです。ただし、これを行うと、実行時に次のようになります。

Object :: connect:そのようなシグナルはありませんmatLinePlot :: rotationChanged(double、double、double)

C:...\matrixVisualization.hで。もちろん、私はそれrotationChangedが入っていないことを知っていますmatrixVisualization.h-それは入っていますが、私はすべてから継承しているので大丈夫だqwt_plot3D.hと思いました。Plot3Dでも、考えてみると、SIGNALとSLOTはマクロなので、MOCは継承を知らない/気にしないと思います。

MOCとSIGNALS/SLOTSは継承などについて知らないようですので、これが私の質問につながります。別の場所で定義されたウィジェットをサブクラス化して、ウィジェットの信号にアクセスするにはどうすればよいですか?

カプセル化を使用してこのようなことを実現する方法の例はたくさんありますが、継承を使用してこれを行う方法がわかりません。

これがばかげた質問である場合は申し訳ありません-私は明らかな何かを見逃しているように感じます。

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

iphone - サブクラス化せずに UIView の背景をグラデーションにする

UIView の背景をサブクラス化せずにグラデーションにする方法はありますか? これを達成するために画像ファイルを使用したくありません。背景のグラデーションを描画するためだけに UIView をサブクラス化する必要があるのは鈍いようです。

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

c# - Hibernate/NHibernate : サブクラスをスーパークラスのインスタンスとして保持する方法

NHibernate を介して保持したい 2 つのクラスがあります。

ばかげた理由で、猫だけをマッピングすることが可能かどうか知りたいですか? そのため、Kitten を永続化すると Cat として保存され、リロードすると Cat としてロードされます。

追加の制約 : - 試してみると、Kitten を認識していないために NHibernate がクラッシュしました。- ただし、Hibernate に Kitten サブクラスをインスタンス化させたくないので、識別子の値を追加したくありません。

どうもありがとうございました!

編集:明示的な ISession.Save("Cat",kitten) の使用が機能することを書くのを忘れていました。カスケード保存中に問題が発生します。

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

oop - ファクトリ メソッドを介して特定のサブクラスに引数を渡す

抽象クラス Drink と、実行時に作成する Drink の種類 (Wine、Beer など) を選択するファクトリ メソッドがあるとします。

各 Drink は、それ自体を適切に初期化するためにいくつかの引数が必要です。これらのいくつかはすべてのドリンクに共通です。たとえば、それらはすべて DrinkConfig 引数を必要とする場合があります。

ただし、各ドリンクにも独自の要件がある場合があります。おそらく、Wine は自分自身を初期化するために Sommelier ヘルパー オブジェクトを必要とします。Beer はそれを必要としませんが、独自のヘルパー オブジェクトが必要な場合があります。

では、ファクトリ メソッドには何を渡す必要がありますか? これを呼び出すと、すべてのヘルパー オブジェクトが利用可能になるので、それらすべてをファクトリに渡すことができます。しかし、これは多くの議論になる可能性があります。これを設計するより良い方法はありますか?

編集:ファクトリでヘルパー オブジェクトを作成することはできないと仮定しましょう。それらは発信者からのみ利用できます。

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

perl - Perl 5 の親とベースの違いは何ですか?

parentとほぼ同じことを行うという名前の新しいプラグマがあるようbaseです。parent新しい(非コア)モジュールを保証するものは何ですか?何か不足していますか?

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

c++ - この戻り値の型が機能しないのはなぜですか? (C++)

イテレータ クラスを使用しようとすると

演算子のオーバーロードの戻り値の型として、

次のエラーが表示されます。

注: container_def.h は、リストとイテレータ クラスのヘッダー ファイルです。soceannotations や crtdefs が何であるかはわかりません。

0 投票する
9 に答える
50328 参照

java - スーパークラス オブジェクトでサブクラスのメソッドを呼び出すことは可能ですか?

Animal は Dog のスーパークラスで、Dog には bark というメソッドがあります

次の点を考慮してください。

何が起こるか?

  1. 割り当ては許可されていません
  2. bark の呼び出しが許可され、実行時に "woof" が出力されます
  3. bark の呼び出しは許可されていますが、何も出力されません
  4. bark を呼び出すと、コンパイル時エラーが発生します
  5. bark を呼び出すと実行時エラーが発生する

オブジェクトが犬かどうかを確認しているので、2 と言いました。dog は bark メソッドを含むクラスであるため、そうである場合はそれを呼び出して :s を出力します

ここで私の理解は正しいですか?

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

actionscript-3 - サブクラスからスーパークラスの関数を呼び出す

私は Actionscript 3 で小さなプロジェクトを持っています。サブクラスからスーパークラスのコードを呼び出すことができれば、すべてが非常に簡単になります。

これはプロジェクトです:

カーゲーム
        カー

Car クラスから CarGame クラスの関数を呼び出すことはできますか?

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

python - クラス インスタンスをサブクラスにキャストする

botoを使用して、いくつかのEC2インスタンスを管理しています。インスタンスクラスを提供します。特定のニーズを満たすためにサブクラス化したいと思います。boto はインスタンスを取得するためのクエリ インターフェイスを提供するため、クラス間で変換するものが必要です。この解決策は機能しているように見えますが、クラス属性を変更するのは危険です。より良い方法はありますか?