問題タブ [invariants]

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

domain-driven-design - ドメイン駆動設計 - 親エンティティに対するエンティティの子の順序

たとえば、親と子の 2 つの集計があります。親は多くの子 (子) を持つことができます。子は 1 つの親にのみ属することができます。

親の子エンティティを取得したときにリストがその順序になるように、子エンティティの並べ替え順序を追跡する必要があります。

明らかなデータベース スキーマは次のとおりです。

ここに画像の説明を入力

ただし、モデルの不変条件は、この順序が明確に定義されている必要があります。したがって、Child にメソッドがある場合、Child.SetOrdinal(int) と言うと、この不変条件は保護されません (2 つの Child を序数 3 に設定することを止めるものは何もありません)。すべてを 1 つの大きな集合体にまとめたくありません。

私が見る代替手段は、次のようなデータベースです。 ここに画像の説明を入力

リレーションシップと順序を格納するためにリンク テーブルを導入した場合、これは不変条件を保護できる親集計内になります。ただし、これによりデータベースが複雑になります。

別の方法はありますか、それとも最初のより単純なバージョンはそれほど悪くありませんか?

0 投票する
0 に答える
64 参照

loops - 減少する反復によるループ不変条件

したがって、これは (temp) から when (temp=index) までのループです。ループの不変式が何であるかはわかりません。これまで反復回数を減らす作業をしたことがないからです。

(∃i : temp...index) • (data[i] := data[i-1]) のようなものを考えていますが、基本ケースが機能しないため正しくありません。

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

java - UML モデリング ツールによって尋ねられるソフトウェア設計の質問のチェックリストについて説明が必要

ArgoUML を使用して UML でモデル化することにより、大規模な Java アプリケーションを消化しようとしています。UML 作図ツールのプロパティ セクションには、優れたソフトウェアの設計に役立つと思われる便利なチェックリストがあります。チェックリスト項目のほとんどは、3 を除いて意味があります。

これらの質問は何を意味していますか?私はオブジェクト指向設計が初めてなので、説明が役に立ちます。

前もって感謝します。

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

logic - 不変量、トートロジーですか?

そのため、アサーション Java API を読んでいるときに、不変条件という用語に出くわしました。私の理解では、ネット上の他の記事を読んだ後、不変条件はトートロジーです。私はそれを誤解しましたか?

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

c# - C#コード契約で不変メソッドに特定の例外を強制的にスローさせる方法は?

オブジェクトの不変メソッドが特定の例外をスローするようにします。それは理にかなっていますか?C#で可能ですか?

たとえば、不変メソッドを持つクラス A と例外クラス E を含む次のコードがあります。今のところ、クラス E は A に参加していません...

そして、私が必要とするのは次のとおりです。Contract.Requires と同様に、Contract.Invariant (または、Exception 派生クラスを受け入れる属性コンストラクター) があると便利です。

それは善意ですか?私のロジックが間違っている可能性がありますか?

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

python - インバリアント Python

私はpythonチュートリアルを読んでいます。3番目の段落は私を少し混乱させます。

「クライアントはデータ属性を慎重に使用する必要があります。クライアントは、データ属性をスタンプすることにより、メソッドによって維持される不変条件を台無しにする可能性があります。」

不変条件とは正確には何を意味するのでしょうか? 特定のメソッドが依存するデータ属性を意味しますか? (たとえば、特定のデータ メンバーを返すメソッド、つまり getter メソッド)

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

immutability - Eiffel の不変クラス

私はPOINTエッフェルで不変のクラスを作ろうとしています。以下のコードはそれを定義していますか? とフィールドの{NONE}アクセシビリティは十分ですか? のようなクラス不変式に何かを書くことはできますか、または他にどのように不変性を達成できますか?xyx = x'