GRASP原則

オフトピック:人間の脳は実際には、単一コアのCPUは、実際には、スレッドを実行することができます。 だから、心を一つにして!
詳細は、参照してください
http://www.lifevv.com/sysdesign/doc/20071211214255251.html

優れたシステムは、木のような構造、または人体の構造でなければなりません。

GRASPはGeneral Responsibility Assignment Softwareパターンの略語で、その中核的なアイデアは「責任割当」です。責任を持ったオブジェクトの設計:責任を持ったオブジェクトの設計 それは9つの基本モードを含んでいます:
1、情報エキスパート(情報エキスパート)独立
2、作成者(作成者)責任を作成する:工場モード
3、高い凝集力(高結束性)カテゴリにいくつかのカテゴリ
4、低結合(低結合)可能な限りクラスとクラスの関係、一方向接触、単線接触
5コントローラ(コントローラ)ActionServlet
6、実行時多型の多型(多型)クラスとメソッド
7、純粋なフィクション(純粋な製作)処理クラスアクションDAO、BO、DTO
8、Indirection Mediatorモードクラスにメッシュ接続を持たせない
9、変更防止(Protected Variations)インタフェースXXXable参照動作、スケーラブル

GRASPの主な機能:
オブジェクトの割り当ての基本原則。
- 分析とモデリングの主なアプリケーション。

GRASPの理解の中核思想:
あなた自身のビジネスを行う(責任の割り当て)
あなた自身の有能なことをする(責任の分配)
私は自分のことだけを行う(義務の結束)

オブジェクト指向設計いわゆるオブジェクト指向設計は、システム設計の過程で、システムは比較的独立しているが、相互に関連する設計方法のオブジェクトの組み合わせに分かれている。
オブジェクトには属性と動作があり、オブジェクトはメッセージ(コラボレーション)を介して相互作用します。

オブジェクト指向設計には、一般的に以下の重要なステップがあります。

1、オブジェクトを発見した。 どのシステムがオブジェクトで構成されるべきかを調べる。
2、オブジェクトのプロパティ。 オブジェクトにはどのような属性がありますか?
3、オブジェクトの動作。 オブジェクトが持っているもの、オブジェクトが何をする必要があり、その義務は何か。
4、オブジェクト間の関係。 オブジェクトとオブジェクトの関係、対話する方法、コラボレーションする方法など。

オブジェクトを発見する

オブジェクトの発見はこの記事の範囲を超えています。 オブジェクト発見のプロセスと手段について簡単に紹介します。
一般的な意味でのオブジェクトは、現実世界のオブジェクトの抽象です。 言い換えれば、現実世界のオブジェクトは何か、オブジェクトは何か、オブジェクトの存在は何か、オブジェクトのプロパティは何か。
「名詞スクリーニング法」を使ってシステムオブジェクトを見つけることができます。
たとえば、学生のテストスコア管理システムは、次の単純な使用例:
- 管理者が試験を作成する(試験に追加された質問)
- システムは、管理者によって入力されたいくつかの条件に従ってランダムに質問を生成する
- 学生の成果の保存と管理名詞を文字通り見つけることができます。「管理者」、「質問」、「テストバンク」、「テスト問題」、「学生」、「学生成果」などのオブジェクトを見つけることができます。

一般に、この方法(名詞スクリーニング方法)によって、システムオブジェクトの大部分を見つけることができます。

オブジェクトの振る舞い

振る舞いは、オブジェクトがオブジェクトの責任であるアクションを実行する必要があります。 オブジェクトにはどのような責任がありますか? 前述の「名詞スクリーニング方法」と比較して、「動詞スクリーニング法」を使用して「オブジェクトのふるまい」を見つけることができます。
例えば、上記の「学生テストスコア管理システム」の例では、「テストバンクの作成」、「入力(条件)」、「テスト問題」、「パフォーマンステスト」、「パフォーマンス管理」、オブジェクトの少なくともこれらの動作(または責任)があります。
時には、一部の「振る舞い」の粒度が大きすぎることがあります。この時点で、ユースケースの説明をさらに洗練することで、より詳細な「振る舞い」を見つけることができます。 ここで詳しく述べない。

質問1:オブジェクトの動作(責任)を特定し、これらの動作をどのように割り当てるか? 言い換えれば、どのように "行動"を確認するかは、どのオブジェクトに属していますか?

オブジェクトの関係

システムのすべてのオブジェクトが互いに関係のない個人であることは不可能であり、多かれ少なかれあらゆる種類の接続(協調関係)を持っています。

質問2:2つのオブジェクトの間に協力関係がある場合、それらの間で協力する最善の方法は何ですか?

オブジェクト拡張機能質問3:抽象化されたオブジェクトは将来どのように変化する可能性がありますか?

GRASPは、上記の設計プロセスで遭遇する様々な問題を解決するための9つの基本モデルを提案する。

カテゴリ:Default 時間:2018-05-14 人気:1

関連記事

Copyright (C) socapnw.com, All Rights Reserved.

Socapnw All Rights Reserved.

processed in 0.174 (s). 9 q(s)