問題タブ [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.
c++ - C++ / OOD 面接の質問に関する質問
- C++/OOD の面接で尋ねられた最も興味深い、または難しい質問は何ですか?
- C++/OOD の面接で候補者に尋ねたい最も興味深い、または難しい質問は何ですか?
編集: 誤解を招くタイトルを更新しました
編集: もちろん:
1. あなたがインタビューを受けているとき。
2. 誰かにインタビューしているとき。
delphi - 「メモリ不足」エラーなしで何十億ものオブジェクトを処理する方法
何十億ものオブジェクトを処理する必要があるアプリケーションがあります。各オブジェクトは TRange クラス タイプです。これらの範囲は、特定の条件やその他のオブジェクト プロパティに依存するアルゴリズムのさまざまな部分で作成されます。その結果、100 個のアイテムがある場合、それ以前のオブジェクトをすべて作成しないと、100 番目のオブジェクトを直接作成することはできません。すべての (数十億の) オブジェクトを作成してコレクションに追加すると、システムは Outofmemory エラーをスローします。ここで、主に 2 つの目的で各オブジェクトを反復処理します。
- TRange オブジェクトごとに操作を適用するには (例: 特定のプロパティを出力する)
- 特定のプロパティの累積合計を取得するには (例: 各範囲には重みプロパティがあり、すべての範囲の重みの合計である totalweight を取得したい)。
Outofmemory を発生させずにこれらのオブジェクトの Iterator を効果的に作成するにはどうすればよいですか?
関数ポインターをアルゴリズム関数に渡すことで、最初のケースを処理しました。例:
しかし、このアプローチの問題は、新しい機能を追加することです。たとえば、前述の合計重量を取得するには、アルゴリズム関数を複製するか、オプションの出力パラメーターを渡す必要があります。いくつかのアイデアを提案してください。
よろしくお願いし
ます
oop - カプセル化。よく設計されたクラス
今日、私は本を読みましたが、その著者は、適切に設計されたクラスでは、属性にアクセスする唯一の方法はそのクラス メソッドの 1 つを使用することだと書いています。それは広く受け入れられている考えですか?属性をカプセル化することがなぜそれほど重要なのでしょうか? それをしないと、どのような結果が生じる可能性がありますか? これによりセキュリティが向上するなどのことを以前どこかで読みました。PHP または Java の例は非常に役に立ちます。
java - オブジェクトを最も基本的な部分に分割する
タイトルが私がここで言おうとしていることを捉えているかどうかはわかりません.
OO で設計するとき、オブジェクトを最も具体的な領域に分割する必要があります。そのため、オブジェクトの作成を扱うファクトリ オブジェクトがあり、後でオブジェクトが同じであっても別の目的でオブジェクトを作成する方法に出くわす場合オブジェクトは、別の fcatory を作成する価値があるか、既存のものに追加するだけです。
私の最大の心配は、大量のものでクラスを大きくすること、またはオブジェクトを分割してプロジェクトをクラスの海に希釈することです。
何か助けはありますか?
編集:
余談/サブトピックで、プログラムで使用する必要がある粒度のレベルを知りたいと思っていると思います。ちょっと、どれくらい低くする必要がありますか?
oop - OOP 設計: オブジェクト固有の「比較」メソッドをどこに置くか?
テスト コレクション オブジェクトに格納された一連のテスト実行からのいくつかの測定オブジェクト インスタンスがあります。また、2 つのテスト結果オブジェクト インスタンスを比較して、それらが「十分に近い」かどうかを教えてくれるロジックもあります。
このロジックはどこに配置する必要がありますか?
- オブジェクトをメソッドとして?お気に入り:
instance.approximately_equal(other)
- クラス/静的メソッドとしてのオブジェクトのクラスで?
class.approximately_equal(a,b)
- コレクションオブジェクトをメソッドとして?
collection.approximately_equal(a,b)
これに対する正しい OO 設計は何ですか?
(#1は正しい解決策のように見えますが、あるインスタンスが別のインスタンスとほぼ等しいかどうかを尋ねることは決してありません.「オブジェクトのいくつかのグループ」が互いに等しい場合のみ. ..)
ありがとう
winforms - MVP トライアドの調整
アプリケーション (WinForms .NET 2.0 アプリ) に複数の MVP トライアドがあり、各トライアドが 1 つの責任領域を担当しているとします。MVP トライアド間の通信を調整するための優先する方法は何ですか?
オプション 1 各モデルを「持ち」、それぞれで必要なイベントをサブスクライブし、どのシナリオでどのモデル メソッドを呼び出すかを決定することで、調整を管理するコーディネーター オブジェクト。
これが「神」クラスかもしれないことを心配してください。
オプション 2 プレゼンターは別のプレゼンターを「持って」おり、モデル内で興味深いことが発生すると、プレゼンターは他のプレゼンターを使用してコミュニケーションを進めます。
プレゼンターがパブリック インターフェイス (Presenter-first アプローチ) を持つべきではないことを心配してください。
スケーラブルなオブジェクト指向の方法でこの問題を解決するために、他の人が何をしたのか疑問に思っています。別の MVP トライアドを追加するとどうなりますか? それを私のコーディネーターに合わせるのはどれほど難しいでしょうか? WinForms アプリで複数の MVP トライアドを管理する方法の良い例がいくつかあるはずです?
design-patterns - 画像処理アプリケーションは、ユーザーが開いたファイルをどのように識別しますか?
画像処理アプリケーションは、ユーザーが開いたファイルをどのように識別しますか?
すでに知られているように、画像処理アプリケーションは既知のすべての形式の画像を開くことができます。私の質問は、画像処理アプリケーションが開いているファイルの種類をどのように認識するかです。ファイル拡張子から知るか、ファイルをバイナリで開き、ファイルのヘッダーを読み取り、そのファイルタイプのオブジェクトを作成します。
または、画像ファイル形式を見つける既知の方法。
上記の問題について、システムをどのように設計するか。使用する設計パターンです。
前もって感謝します。
ハルシャ
java - これは十分な抽象化ですか、それとももっとうまくできますか?
要件: 一連のデータ ソースをプル(execute()) する必要があります。プルはOrderedであり、小さなサブグループにグループ化できます。
設計: 各プルはステップとして抽象化されます。サブグループは WaterFallStep として表されます。これは、グループ内の各データ ソースのプルが条件付きであり、ウォーターフォール モデルに従うためです。つまり、グループ内の最初のデータ ソースのプルが成功すると、グループから抜け出します。
質問
- これは十分な抽象化ですか、それとももっとうまくできますか?
- これをJPA 2で表現する方法は? 記述子を使用して継承をマッピングできることはわかっていますが、私の主な関心事は、WaterFallStep と BasicStep の間の 1 対多の関係です。
ありがとうございました。
c# - この静的クラスはマルチ ユーザー シナリオで壊れますか?
拡張メソッドを使用して次のような静的クラスを作成するとします。
マルチ ユーザー システムでは、状態管理ディクショナリは変換アルゴリズムに正しい値を提供できませんか? 通常のクラスはより良い設計になるのでしょうか、それともメソッド内に Dictionary を押し込むことでより良い設計になるのでしょうか?
c++ - オブジェクト指向設計の問題の実際の例に関するオンライン資料はありますか?
C++でオブジェクト指向設計の問題を解決する練習をしたいです。デザインパターンを使用した実際の問題と解決策のサンプルを含むオンライン資料はありますか?
検索しましたが、オンライン資料を入手できませんでした。plsは私を助けます。