問題タブ [object-oriented-analysis]

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

ruby-on-rails - このデータをRubyでオブジェクト化するにはどうすればよいですか?

Rails アプリで使用する DB に書き込むことができるように、次のテキストをいくつかの Ruby オブジェクトに入れます。データは、海の特定のポイントでの海のうねりを示す波予測モデルからの出力です。最初の列は曜日と時間、次に結合されたうねり (これには関心がありません)、その後に 1 時間に 1 から 6 回のうねりまで変化する個々のうねりが続きます。

日付、うねりの数、各うねりに関する情報に興味があります。私が求めているのは、日/時をキーとして含み、各うねりの個々のデータも含むオブジェクトです。うねりの数は時間ごとに異なります。行をロードした場合:

次のような呼び出しでオブジェクトから情報を取得したいと思います。

私が必要としているのは、他のオブジェクトの可変長ストアを持つオブジェクトだと思います。それは可能ですか?私が何を読むべきかについての指針はありますか?

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

ruby-on-rails - サービス層でユーザーの要求を処理した後にエラーを報告するための OOD

ユーザーのリクエスト中に発生するエラーには 2 種類あると思います。

{1} : システム エラー (例外、致命的なエラー、警告、通知など)
{2} : ユーザー制御エラー (ユーザーが間違ったことを行い、通常は検証中に発生します)

通常、レポート{1}は比較的単純です。ほとんどの人は、エラー ページまたは通知を表示するだけです。{2}の場合は異なります。

Yii と Rails、およびその他のフレームワークには、モデル内の各属性に対してバリデーターを指定できる検証スキームが用意されています。検証中、バリデーターは指定された属性を検証し、マップ形式でエラーを報告します: attributeName => エラーの配列。

アプリケーションでは、サービス層のサービスは他のサービスのロジックとドメイン モデルのロジックに依存する場合があるため、その属性と検証のセットもこれらの外部サービスとドメイン モデルに依存する場合があります。

たとえば、ユーザー登録サービスは属性「username」と「password」を所有し、そのロジック ルールは、ユーザー名の最大長とパスワードの最大長を検証する際のユーザーのロジック ルールに依存する場合があります。

私の質問は、依存関係の多くの層を通してこれらの属性をどのように検証し、エラーをユーザーに報告するかということです。

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

java - Java Android ビュー構造

たぶんばかげた単純な質問です。Inflater を使用して Android アプリケーションで一度に複数のアクティビティを使用しても問題ありませんか? 前のビューを失うことなく、画面に複数のビューを表示したい。たとえば、ユーザーがボタンをクリックすると、情報画面が表示されます。Start Intent は、画面全体を情報画面アクティビティに変換します。

インフレータの使用は機能しますが、複数のビューを表示する正しい方法かどうか疑問に思っています。前もって感謝します。

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

python - 同じベースに依存する抽象的な動作にボルトで固定しますか?

私が扱っている設計上の問題について、誰かが私を助けてくれることを願っています。これは具体的にはゲーム開発の領域の問題ですが、おそらく受け入れられた方法で解決された、より広範な問題だと思います。私はPythonで働いています。

オブジェクトの位置 (およびその他の一般的な状態属性) を保持する GameObject クラスと、ゲーム世界全体に関する情報を保持する Engine オブジェクトへの参照があります。ゲームオブジェクトはさらに分類できます。具体的な形式では、VisibleGameObjects、PhysicalGameObjects (衝突可能)、またはその両方にすることができます。たとえば、物理的であるが目に見える表現を持たない、目に見えない境界を持つことができます。

VisibleGameObjects は、描画機能を処理する draw() メソッドを実装し、親の Engine 参照を通じてこれを委譲します。PhysicalGameObjects にはバウンディング ボックスがあり、衝突を処理するロジックを定義します。GameObject 属性 (加速度、速度など) へのアクセスも必要です。

問題は、VisibleGameObject と PhysicalGameObject (どちらも親 GameObject を共有する) の両方の動作を継承する必要がある具体的なオブジェクトを定義したい場合にどうなるかということです。このタイプの循環継承は非常に悪い考えだと私は理解しています。

これをリファクタリングして、親抽象クラスの状態に依存する具体的な子クラス (描画可能、衝突可能) に特定の動作を本質的にボルトで固定するにはどうすればよいですか?

編集: 私の 1 つの考えは、それらをゲーム オブジェクトの具体的なインスタンスにコンポーネントとして割り当て、is-a 関係よりも has-a 関係を優先することでした。ただし、それでもそれほどきれいには見えません。衝突可能なコンポーネントの「コンポーネント」リストを検索して、オブジェクトが衝突可能かどうかを確認しようとするのも、あまり良くないようです。

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

oop - MVC - あるモデルから別のモデルへのデータ変換?

Model View Controller パターンでは、どこでデータ変換を行う必要がありますか?

非常に具体的な数学的データを格納するモデルがあります。そのデータを物理シミュレーター (特定の形式のデータのみを受け入れる) 用に変換する必要があり、そのためのコードをどこに置くべきか疑問に思っています。一般に、あるモデルを別のタイプのモデルに変換するコードをどこに配置しますか?

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

c# - このシナリオでは BaseClass を使用する必要がありますか?

基本的に、システム内のアセットのすべての情報を保持する Asset というクラスがあります。これは非常に大きくなる可能性があります (アセットには、サムネイル、ファイル名、メタデータ、評価、コメントなどがあります)。

結果ページに、特定の条件に一致するすべてのアセットを一覧表示し、jQuery を使用してフィルタリングできます。

私は IE8 でパフォーマンスの問題を見つけていたので、最初に行ったことは Asset クラスを見て、ページにアセットを表示するために必要でないものを確認することでした。(後で jQuery にアクセスしたところ、それがパフォーマンスの問題の原因であることがわかりました)。

そのため、クラスを基本にまで削ぎ落としたときに、それを BaseAsset にして、そこから Asset を派生させました。

私の質問は、私はそれをする必要がありましたか? 必要はありましたか?

必要に応じて例を提供しますが、投稿が非常に大きくなる可能性があるため、現時点では控えています:)

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

java - 建物、床、空間のクラス構造をどのように設計しますか-オブジェクト指向

これらの要件に対するエレガントなOOP設計は何でしょうか?

「建物、床、スペースのクラス構造を設計します。スペースには、アパート、店舗、オフィスなどがあります。興味があると思われるプロパティ、フィールド、メソッドをすべて含めてください。」

私はこれを試しましたが、それは良い解決策ではないと思います:

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

oop - オブジェクト指向設計の原則抽象化

抽象化について読んでいるときに、私は次のステートメントに出くわしました

「抽象化は、現在のパースペクティブに関連するオブジェクトに関する詳細のみをキャプチャします」

たとえば。ドライバーの観点から、車のクラスは

整備士の観点からすると、車のクラスは

私の質問、システムを設計する際に、1つのユーザーパースペクティブ(ドライバーまたはメカニックのいずれか)用に設計しますか、それとも複数のユーザーパースペクティブ用に設計し、ユーザータイプに基づいてさらに抽象化できますか?

私の質問が明確であることを願っています。

ありがとう

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

entity-framework - エンティティ フレームワークの上にビジネス ロジックを構築する 5 つの POCO

私は ADO.NET のバックグラウンドを持っており、本格的なプロジェクトで初めて Entity Framework を使用したので、先に進んで VS2012 を取得し、.NET 4.5 とエンティティ フレームワーク 5 を使用しています。

私はデータファーストのアプローチを採用しており、データベースを作成し、.edmx を生成し、この方法を使用してコンテキストから POCOS を分離しました: http://allen-conway-dotnet.blogspot.co.uk/2013/01 /separating-entity-framework-poco.html

したがって、私のソリューションは次のようになります。

データベース/ POCOクラスに次のテーブルがあるとします(単なる例-実際のものではありません)

ここで、データベース内のすべての車に Web サービス、または XML を返し、利用可能な部品のリストを提供する URL へのリンクがあるとします。各車が部品データを取得する方法は異なります (REST、WCF、CSV ファイルなど)。

そこで、Car を拡張するクラスを定義し、その特定の車の部品を取得するための特定のビジネス ロジックを持つ "GetParts()" メソッドを定義したいと考えています。

また、データベースからすべての車を取得してループし、各車の GetParts メソッドを呼び出してデータを取得できるようにしたいと考えています。

GetParts メソッドを宣言し、何らかの方法で Car POCO を組み込むインターフェイスまたは抽象クラス ICar を定義する必要があると考えていますが、これをコーディングする方法について混乱しています。

おそらく設計パターンを提案して、これを行うためにコードを構造化する方法を簡単に説明できますか?

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

ruby - Rubyで一時的な名前空間と定数を作成する方法はありますか?

私はクラスを持っています:

クラスとそのメソッドを一時的にオーバーライドするプロセスを作成したいと思います。

Ruby にこのようなものはありますか、それとも私は夢を見ているだけですか? 名前空間の無公害、一時定数、メソッド、名前空間、クラス。あまり気を散らすことなく、クリーンで焦点を絞った最適化されたコード。