問題タブ [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.
methodology - OOAD「isa」階層で説明する必要があります
私はオブジェクト指向の分析とアプリケーションを使用した設計を購入しました。64ページの段落2で、以下のような「isa」階層について説明しています。
その「isa」階層に関しては、高レベルの抽象化が一般化され、低レベルの抽象化が特殊化されます。したがって、FlowerクラスはPlantクラスよりも抽象化のレベルが高いと言えます。
私が理解しているように、私は植物が花よりも一般化されていると思います。花のクラスは植物よりも抽象化のレベルが低くなっています。
この時点で私の理解が正しいのか、それとも本が正しいのか知りたいですか?はっきりさせてください。
oop - オブジェクト指向設計リソース
オブジェクト指向設計を学習するための優れたリソース (書籍や Web サイト) を探しています。私が見つけたすべてのリソースは、OO 設計ではなく、UML と RUP について詳しく教えてくれます。Head First book のまったくの繰り返しのせいで、私は彼らの本を読みたくなくなりました。オブジェクト指向設計の「コンピュータプログラムの構造と解釈」に似た、オブジェクト指向を教えるポイントに到達する本を探しています。特定の OO 言語を好みません。
php - レポートに関する OOAD のアドバイスを探しています
多くの異なるファイル形式で任意の量のレポートを作成する必要があります。Smarty を使用して出力をテンプレート化できるほとんどの形式。ただし、Excel および PDF への出力は複雑であり、FPDF または TCPDF と PHPExcel を使用する必要があります。
1 つまたは複数の設計パターン (可能であれば) を使用してクラスを編成する最善の方法を見つけようとしています。
出力形式:
- テキスト - Smarty
- テキスト (PCL フォーマット付き) - Smarty
- CSV - Smarty
- HTML - スマート
- エクセル - PHPエクセル
- PDF - FPDF / TPDF
これらの形式は、ストリーミング用にメモリに格納したり、後で使用するためにファイルに書き込んだりできる必要があります。
すべてのレポートで一貫している唯一のことは、データが必要であり、PDF と Excel のサポートが追加されるまで、テンプレートが必要であるということです。現在、getData() という抽象メソッドを持つ Report クラスがあります。各サブクラス (SpecificReport など) は必要なデータを取得し、テンプレートなどにバインドするためにクラス プロパティに格納します。
各レポートは、すべての形式で利用できる必要があります。
現時点では Report クラスが出力を処理しますが、Excel と PDF のサポートを追加すると、それが不可能になります。Smarty のようにデータをテンプレートにバインドするだけではありません。各レポートには特定のコードが必要です。各レポート サブクラスでこれらのメソッドをオーバーロードするだけでよいと思います。
誰かが同様のタスクに遭遇しましたか?
oop - 依存性注入の適切な比喩は何ですか?
DI 以外のシステムをプログラミングするときに私が覚えていた比喩は、「おもちゃで遊んでいる人」です。人はオブジェクトであり、人のおもちゃはオブジェクトが作成、保存、初期化、および操作するものです。おもちゃは、特定の状態に達するとイベントを送信できますが、使用者については何も知りません。それらは、インターフェイスを構成するコントロール スイッチを備えた小さなブラック ボックスです。ユーザーは、おもちゃからのイベントをリッスンし、インターフェイスを操作して応答できます。人は自分のおもちゃでやりたいことを何でもできますが、壊れる可能性があるため、内部に干渉するべきではないでしょう。
DI が私の比喩にもたらした大混乱は、玩具が、その所有者、つまり使用者を知っている意識のある存在に変わってしまうことです。おもちゃはこの人を操作することができますが、その人はおもちゃがどのように機能するかを何も知らず、気にもかけません。その人はおもちゃを所有しているだけで、おもちゃが自分を満足させるように操作してくれることを期待しています。
なに?それは恐ろしいですね!
DIシステムがどのように機能するかを考えるために、彼らが使用している優れた精神的な比喩は何ですか?
oop - インターフェイスを使用する理由 標準化のためだけですか?
インターフェイスを使用する理由
標準化のためだけですか?
oop - 多重度の UML 構文は何ですか? (クラスボックス内)
別のクラスへのリンクを描画しなくても、同じクラス ボックス内で多重度を指定できることはわかっています。
私の質問は、名前の後またはタイプの後、多重度はどこに行くべきですか?
それは...ですか:
可視性名の多重度: タイプ
なので
また
可視性名: タイプの多重度
なので
私は 2 冊の本を持っています (Larman と UML による Applitying UML and Patterns と、Arlow と Newstadt による統合プロセス) が、それらは異なります
c# - ユースケースをソフトウェアにカプセル化する
私は通常、開発するすべてのソフトウェアのユースケースを作成します。ユースケースごとに、私は通常、フローを指示するコントローラーを作成します(ユースケースを実装します)。
最近、Asp.netMVCを使用してWebアプリの開発を開始しました。Asp.net MVCのベストプラクティスの1つは、コントローラーのロジックを非常に少なくすることです。これを反映するためにデザインをどのように変更するのかわかりません。
基本的に、ユースケースをカプセル化する方法が必要です。
oop - OOAD のおすすめ書籍: 理論から実践まで
私は優れた OO 開発者になることを目指しています。OO には興味をそそられます。なぜなら、私はパターンを理解しており、構成がなぜ継承よりも柔軟性を高め、そのような知恵をより多く与えてくれるのかを知っているからです。しかし、シングルトンのファクトリを実装する方法は知っているが、堅牢な OO 設計を考え出す方法は知らないという結論に達しました。
私はたくさんの本を持っています
- GoFによるデザインパターン
- アンチパターンブラウン他。
- Fowler によるリファクタリング
- コードコンプリート 2
それらは非常に優れた本かもしれませんが、アプリケーションを設計する方法を教えてくれるわけではありません。私はしばしば、いくつかの非常に基本的な決定 (例) によって麻痺します。いつ、なぜなのかを教えてくれる本を探しています。ハンマーと釘に関する本はたくさんありますが、実際の関係について説明している本はまだ見つかりません。
あなたが自信を持って OO アーキテクト/デザイナーになるのに最も役立った本は何ですか?
design-patterns - クラス設計の助けが必要
次の形式でデータを出力する特定のswモジュールを開発する必要があります メインオブジェクトと関連オブジェクトと数量
すなわち
これは、デスクトップ コンピューター オブジェクトの場合、1 つの CPU、1 つのマウス、1 つのキーボード、1 つのモニター、2 つのスピーカーがあることを意味します。
同様に、キュービクル オブジェクトごとに、4 つのデスクトップと 1 つの電源オブジェクトが必要です。
ルール: 4 つのキュービクルごとに 1 つの HUB オブジェクトが必要です。
OOPクラス/インターフェースに関して同じことを実現するのを手伝ってくれる人はいますか? または、そのような状況で使用するデザイン パターンへのポインター。同じ時間をありがとう