問題タブ [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.
objective-c - Objective-C でのサブクラス化は悪い習慣ですか?
多くのブログ、フォーラム エントリ、およびいくつかの Apple ドキュメントを読んだ後でも、Objective-C で広範なサブクラス化を行うことが賢明かどうかはまだわかりません。
たとえば、次のケースを考えてみましょう。
要素の多いパズル ゲームを開発しているとします。これらの要素はすべて、ある程度同じ動作を共有します。次に、要素のコレクション内で、要素のさまざまなグループが同等の動作を共有し、グループをグループから区別するなど...
それで、何を何から継承するかを決定した後、忘却からサブクラス化することにしました。そして、なぜ私はすべきではないのですか? このモデルで一般的な動作を簡単に微調整できることを考えると、OOP の目的を達成できたと思います。
しかし、- これが私の質問の源です- Apple は、サブクラス化を支持してデリゲート、データ ソース メソッド、非公式プロトコルの使用について言及しています。本当に頭がおかしくなるのはなぜですか?
2つのキャンプがあるようです。サブクラス化に賛成の人、そうでない人。どうやら個人の好みによるようです。大規模にサブクラス化することと、大規模にサブクラス化しないことの長所と短所は何ですか?
まとめとして、私の質問は簡単です。私は正しいですか? そして、なぜ、またはなぜではないのですか?
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は継承などについて知らないようですので、これが私の質問につながります。別の場所で定義されたウィジェットをサブクラス化して、ウィジェットの信号にアクセスするにはどうすればよいですか?
カプセル化を使用してこのようなことを実現する方法の例はたくさんありますが、継承を使用してこれを行う方法がわかりません。
これがばかげた質問である場合は申し訳ありません-私は明らかな何かを見逃しているように感じます。
iphone - サブクラス化せずに UIView の背景をグラデーションにする
UIView の背景をサブクラス化せずにグラデーションにする方法はありますか? これを達成するために画像ファイルを使用したくありません。背景のグラデーションを描画するためだけに UIView をサブクラス化する必要があるのは鈍いようです。
c# - Hibernate/NHibernate : サブクラスをスーパークラスのインスタンスとして保持する方法
NHibernate を介して保持したい 2 つのクラスがあります。
ばかげた理由で、猫だけをマッピングすることが可能かどうか知りたいですか? そのため、Kitten を永続化すると Cat として保存され、リロードすると Cat としてロードされます。
追加の制約 : - 試してみると、Kitten を認識していないために NHibernate がクラッシュしました。- ただし、Hibernate に Kitten サブクラスをインスタンス化させたくないので、識別子の値を追加したくありません。
どうもありがとうございました!
編集:明示的な ISession.Save("Cat",kitten) の使用が機能することを書くのを忘れていました。カスケード保存中に問題が発生します。
oop - ファクトリ メソッドを介して特定のサブクラスに引数を渡す
抽象クラス Drink と、実行時に作成する Drink の種類 (Wine、Beer など) を選択するファクトリ メソッドがあるとします。
各 Drink は、それ自体を適切に初期化するためにいくつかの引数が必要です。これらのいくつかはすべてのドリンクに共通です。たとえば、それらはすべて DrinkConfig 引数を必要とする場合があります。
ただし、各ドリンクにも独自の要件がある場合があります。おそらく、Wine は自分自身を初期化するために Sommelier ヘルパー オブジェクトを必要とします。Beer はそれを必要としませんが、独自のヘルパー オブジェクトが必要な場合があります。
では、ファクトリ メソッドには何を渡す必要がありますか? これを呼び出すと、すべてのヘルパー オブジェクトが利用可能になるので、それらすべてをファクトリに渡すことができます。しかし、これは多くの議論になる可能性があります。これを設計するより良い方法はありますか?
編集:ファクトリでヘルパー オブジェクトを作成することはできないと仮定しましょう。それらは発信者からのみ利用できます。
c++ - この戻り値の型が機能しないのはなぜですか? (C++)
イテレータ クラスを使用しようとすると
演算子のオーバーロードの戻り値の型として、
次のエラーが表示されます。
注: container_def.h は、リストとイテレータ クラスのヘッダー ファイルです。soceannotations や crtdefs が何であるかはわかりません。
java - スーパークラス オブジェクトでサブクラスのメソッドを呼び出すことは可能ですか?
Animal は Dog のスーパークラスで、Dog には bark というメソッドがあります
次の点を考慮してください。
何が起こるか?
- 割り当ては許可されていません
- bark の呼び出しが許可され、実行時に "woof" が出力されます
- bark の呼び出しは許可されていますが、何も出力されません
- bark を呼び出すと、コンパイル時エラーが発生します
- bark を呼び出すと実行時エラーが発生する
オブジェクトが犬かどうかを確認しているので、2 と言いました。dog は bark メソッドを含むクラスであるため、そうである場合はそれを呼び出して :s を出力します
ここで私の理解は正しいですか?
actionscript-3 - サブクラスからスーパークラスの関数を呼び出す
私は Actionscript 3 で小さなプロジェクトを持っています。サブクラスからスーパークラスのコードを呼び出すことができれば、すべてが非常に簡単になります。
これはプロジェクトです:
カーゲーム
カー
Car クラスから CarGame クラスの関数を呼び出すことはできますか?