問題タブ [ooad]

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

oop - デザインのお手伝い

私は C# 構文のプログラミングが得意だと思います。私が今探しているのは、特にデータとデータベースに関しては、オブジェクト指向のデスクトップ アプリケーションと Web アプリケーションを設計するための最良の方法を扱うリソース、書籍 (推奨)、Web サイト、ブログです。

ありがとう

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

interface - オブジェクト指向の分析と設計

インターフェイスでメソッドの静的タイプを指定できないのはなぜですか。

これを行う代替手段はありますか??

しかし、抽象クラスの代わりにインターフェイスのみを使用する必要があります。

/

インターフェイスでアクセス指定子を指定することに問題はありますか?

インターフェイスでイベントを指定したいのですが、実装されたクラスのみがアクセスできるようにする必要があるため、そのイベントへの保護されたアクセス指定子が必要です。

その場合、パブリックアクセス指定子を使用できます。

0 投票する
10 に答える
86086 参照

oop - コンストラクターとファクトリーメソッド

クラスをモデル化する場合、初期化の推奨方法は次のとおりです。

  1. コンストラクター、または
  2. ファクトリ メソッド

そして、それらのいずれかを使用するための考慮事項は何ですか?

特定の状況では、オブジェクトを構築できない場合に null を返すファクトリ メソッドを使用することを好みます。これでコードがすっきりします。コンストラクターから例外をスローするのとは対照的に、代替アクションを実行する前に、戻り値が null でないかどうかを簡単に確認できます。(個人的には例外は好きではありません)

たとえば、id 値を期待するクラスにコンストラクターがあるとします。コンストラクターはこの値を使用して、データベースからクラスを設定します。指定された ID を持つレコードが存在しない場合、コンストラクターは RecordNotFoundException をスローします。この場合、そのようなすべてのクラスの構築を try..catch ブロック内で囲む必要があります。

これとは対照的に、レコードが見つからない場合に null を返すクラスに静的ファクトリ メソッドを設定できます。

この場合、コンストラクターまたはファクトリーメソッドのどちらのアプローチが優れていますか?

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

c# - デコレータと仮想メソッド

デコレータデザインパターンは、クラスの機能を拡張するための非常に優れたソリューションです。たとえば、既存のクラスメソッドで前処理メソッドと後処理メソッドが必要な場合は、デコレータを作成し、基本クラスの既存のメソッドをオーバーライドして、それぞれ前処理メソッドと後処理メソッドを呼び出すことができます。

ここでの私の質問は、上記の要件がアプリケーションの設計中に発生することはめったにないということです。作成したすべてのメソッドを仮想としてマークして、デコレータでオーバーライドできるようにすることはできません。したがって、メソッドの非表示に頼る必要があります。

メソッドをオーバーライドしたい状況で可能な限り最良の方法で実行できるように、クラスを設計するためのより良い方法はありますか?

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

architecture - デザインと建築の違いは何ですか?

この 2 つの用語は非常に広範に使用されています。それらはどのように正確に異なりますか?

この違いを詳しく説明できる実際の例やシナリオはありますか?

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

architecture - 層と層の違いは何ですか?

この2つの用語について混乱しています。この 2 つの用語の意味は何ですか? 層と層の違いは何ですか?

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

design-patterns - 会社と連絡先のオブジェクト設計のヘルプ

誰か (または何人か) が、私たちが数日間格闘してきた問題を解決してくれることを願っています。添付の図を使用して、ビジネス オブジェクトをどのように整理しますか?

この問題を解決するために使用できるデザインパターン/オブジェクトモデルをどこで、またはどのように検索するかについてのアイデアを探しています。私たちの状況は少し複雑ですが、私たちはしようとしましたこの質問をするために、できる限り単純化してください。

いくつかの詳細: 一部の企業には製品ラインがあり、一部の企業にはありません。
各会社には連絡先のリストがあります。会社に少なくとも 1 つの製品ラインがある場合、それらの会社の連絡先の一部は、少なくとも 1 つの製品ラインにも関連付けられています。
連絡先のいくつかは、他の連絡先の参照 (ビジネス/個人) です。
各会社および各連絡先には、0 個以上のアドレスを指定できます。

より適切な解決策を見つけるための支援に感謝します (複数のモデル/パターンを使用する必要があると思います)。

エンティティ図

図の拡大 (flickr.com)

** (図より) 当社には、参考文献などにもなりうるため、連絡先に含まれる従業員/社内アプリケーション ユーザーがいます。

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

java - コンポジションとアグリゲーションの違いは何ですか?

コンポジションとアグリゲーションの違いは何ですか?誰かがこのOOADのサンプルを教えてもらえますか?

0 投票する
14 に答える
96232 参照

design-patterns - アンチパターンとは?

パターンとアンチパターンを勉強しています。パターンについては明確な考えがありますが、アンチパターンはわかりません。Web やウィキペディアの定義は、私をかなり混乱させます。

アンチパターンとは何かを簡単な言葉で説明できる人はいますか? 目的は何ですか?彼らは何をしますか?それは悪いことですか、それとも良いことですか?

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

associations - プログラミングコードの観点から集計を表示する方法は?

私は、関連付けと集約、構成と一般化について、それらが定義上何であるかを知っています。継承は「ある」関係であり、合成は「ある」関係です。

今私の質問は、プログラミングコードの観点から、集約と単純な関連付けがどのように表示されるかです。?