問題タブ [abstract]

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 に答える
97 参照

django - ジャンゴモデリング

概念:

飲み物は成分でできています。例えばウォッカ10ml。一部の領収書では、成分が非常に特殊なもの (Finlandia Vodka 10ml) もあれば、そうでないもの (ANY Vodka 10ml) もあります。

この問題を解決するためにコンポーネントをモデル化する方法を考えています。より多くの要件を満たすことができる特定の製品を在庫に持っています。

現在のモデルは次のとおりです。

実際の製品 (在庫) と抽象的な製品 (レシート コンポーネント) を結合するテーブルを作成することを考えています。しかし、おそらく簡単な解決策がありますか?

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

c# - .NETクラスライブラリで「抽象」列挙型を作成するにはどうすればよいですか?

パケットの関連付けが列挙型によって行われるサーバーライブラリを作成しています。

自分のプロジェクトで作業している場合は問題なく機能します。返される列挙型メンバーを比較できます(つまりif (packet.OperationCode == ClientOperationCode.LoginRequest))。ただし、これはクラスライブラリであるため、ユーザーは独自の列挙型を定義する必要があります。

したがって、「abstract」として追加する2つの列挙型(ServerOperationCodeとClientOperationCode)があります。C#で抽象列挙型を実装することは不可能です。どうすればこれを行うことができますか?

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

.net - リフレクションを使用してデフォルトのコンストラクターを取得する方法は?

実行時に抽象クラスの派生クラスを動的に生成するライブラリを作成しています。派生クラスのコンストラクターは、MethodInfoそれを呼び出すことができるように、基本クラスのコンストラクターの を必要とします。Type.GetConstructor()しかし、何らかの理由でnull. 例えば:

でコンストラクターを明示的に宣言した場合でも、 Test が抽象的でない場合でも、がGetConstructor返されることに注意してください。nullTest

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

scala - Scalaの封印された抽象vs抽象クラス

sealed abstractabstractScalaクラスの違いは何ですか?

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

c# - WCF サービスを実装する 3.0 DLL を使用する .NET 2.0 プロジェクトの問題

1 つのプロジェクトで WCF サービスにアクセスするためのクライアントを作成し、サービスで動作するすべてのクラスはこのクラスから継承します。

このクラスでは、破棄、クライアントが呼び出されたときのログ記録などを行います。すべてのサービス クラスが通常行う一般的な処理です。

これを古いシステムに実装するタスクを取得するまで、すべてがうまくいきました。このプロジェクト (DLL) を参照できない別のプロジェクトで使用したときに問題が発生しました (これはSystem.ServiceModel私がまだ維持している古い .NET 2.0 ソフトウェアであり、3.0 にアップグレードすることは問題外であるため)。ここで、省略where TServiceClient : ICommunicationObjectした場合、プロジェクトはビルドできますが、ServiceClient使用できません。たとえば、client.Close()またはclient.State

それで、whereステートメントを削除してサービスクラスを書き直す唯一の解決策はありますか?

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

java - Java 抽象ビジター - 成功することが保証されていますか? もしそうなら、なぜですか?

訪問者パターンを使用して、プロキシされたインスタンスの背後にあるランタイム クラスを把握しようとして、休止状態を扱っていました。そこで、あるアプローチを思いついたのAbstractVisitableですが、いつも正しい結果が得られるのだろうか。

次のコードを検討してください。

これにより、からメソッドConcreteVisitableを継承するが作成されます。C++ では、 AbstractVisitableでは ではなくを参照する可能性があるため、これは危険であると考えます。特定の状況下でコードが出力されるのではないかと心配していました。しかし、上記のコードは を出力しますが、実際の型を動的プロキシの背後に隠しています (これは私が思いつくことができる最も困難なケースです)。上記の抽象的なビジター アプローチは動作することが保証されていますか、それともこのアプローチにはいくつかの落とし穴がありますか?acceptAbstractVisitablethisAbstractVisitable::thisConcreteVisitable::thisclass AbstractVisibleclass ConcreteVisitable

thisポインタに関してJavaでどのような保証が与えられていますか?

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

python - 仮想クラス:それを正しくやっていますか?

私は、クラスの継承、抽象基本クラス、さらにはPythonインターフェースについて説明しているドキュメントを読んでいます。しかし、私が望んでいるものとまったく同じになるものは何もありません。つまり、仮想クラスを構築する簡単な方法です。仮想クラスが呼び出されたら、与えられたパラメーターに基づいてより具体的なクラスをインスタンス化し、呼び出し元の関数に返します。今のところ、仮想クラスへの呼び出しを基になるクラスに再ルーティングする簡単な方法があります。

アイデアは次のとおりです。

number_of_edges()関数への呼び出しのみが渡されるため、私の再ルーティングは最適とはほど遠いものです。このようなものをShapeに追加しても、そのトリックを実行するために継ぎ目はありません。

私が間違っていることは何ですか?アイデア全体がうまく実装されていませんか?どんな助けでも大歓迎です。

0 投票する
3 に答える
1573 参照

delphi - Delphi 6:抽象クラスメソッドが欠落している場合にコンパイラエラーを強制しますか?

私は Delphi Pro 6 を使用しています。現在、クラスに基底クラスの抽象メソッドがないかどうかを知る唯一の方法は、IDE が抽象メソッド {base class.抽象メソッド名}」という警告を表示するか、欠落しているメソッドを呼び出そうとしたときに実行時の抽象エラー メソッドを待機します。前者は、現在のプロジェクトで実際に構築された派生クラスの警告しか検出しないため、十分ではありません。後者は単純に痛いです。

基本クラスの抽象メソッドをすぐに宣言/実装しないすべてのクラスに対して、Delphi が致命的な警告を出力するようになれば、はるかに良いでしょう。これを設定する方法またはこれを行うプラグインを知っている人はいますか?

ありがとう。

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

boost - ptr_mapとポインタ

基本抽象型から派生したオブジェクトを格納するために、boostのptr_mapを使用しています。

挿入はうまく機能します:

しかし、マップから戻っていない:

ここで問題:ptr_mapのoperator []が参照を返します!したがって、コンストラクターでは、値から型を呼び出すことができます。コンパイラはエラーで失敗します:

値へのポインタを返すメソッドがptr_mapにある場合、問題はありません。これについて何と言えますか?

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

c# - 抽象基本クラスを使用して内部クラスを継承するにはどうすればよいですか?

内部クラスを使用してテストメソッドを編成するテストクラスを作成しようとしています。このクラスを抽象化し、静的プロパティを設定して、このプロパティを挿入できるようにしたいと思います。これが私が話していることの例です:

ただし、DerivedUnitTest + WhenFoo + TestFoo()クラスが単体テストビューに表示されません。Visual Studio 2010を使用しています。BaseUnitTestをオーバーライドするとき、その内部クラスもオーバーライドしないと思います。内部クラスを抽象化して後でオーバーライドできると思いますが、テストクラスの複雑さが増すにつれて、これは非常に煩わしくなります。誰かがこれが発生している理由と私がそれを修正する方法を説明できますか?

ありがとう。

編集:

これをやりたい理由をもっとよく説明する必要があるように感じます。名前付けが非常に冗長なテスト標準を実装したいと思います。したがって、テストクラスは次のようになります。

これの利点は、Visual Studioでテストビューを開き、メソッド名とクラス名の列を表示すると、次のようなものが得られることです。

これにより、数百回の合格テストの中で失敗したテストが何をするのかが一目でわかりやすくなります。

抽象BaseUnitTestをオーバーライドできるようにしたい主な理由は、BaseUnitTestに含まれていたすべてのテストがすべてDerivedUnitTestに追加され、VisualStudioのテストビューに表示されるためです。

再度、感謝します。