オブジェクトバー

6248 ワード

対象と認知能力


なぜ対象に向かうのが直感的で分かりやすい例なのか。


✔¥人間は先天的に見える世界を自主的、独立した対象に分解する能力があるから
✔¥¥ААААААААА

→したがって、客体とは、人間がはっきりと認識し、区別できる物理的または概念的な限界を有するものである

 어떤 것이다.

→対象を導くパターンは人間が認識できる様々な対象が集まって現実世界を形成する

 것처럼 소프트웨어의 세계 역시 인간이 인지할 수 있는 다양한 소프트웨어 객체들이 모여 
 이뤄진다는 믿음에서 출발한다.

オブジェクト


個々のステータスが認識されるのは、すべてオブジェクトです.
勘定科目の人間の認知能力は、他のものと区別でき、生成時間などを知ることができます.

→これらのオブジェクトの様々な特性を効率的に説明するためには、オブジェクトの状態、動作、識別子を持つエンティティが最も有効であると見なす


≪ステータス|Status|emdw≫


なぜステータスが必要なのか


ААААААААААААААА
✔ある行動の結果は過去にどのような行動があったか(過去の行動によってどのような状態があったか)に依存する

過去の行動の結果から現在起こっている結果の複雑さを判断するので,これは一種の状態であると考えられる.


→状態を利用して、過去の束縛を受けずに、現在のように相手の行動を知る
「A」の状態を表す基準は対象ではないことを覚えておいてください.
ex)「工兵主」という名称の対象状態は184 cm、74 kgであるが、184と74の単純値は対象ではない

💡 オブジェクトが他のオブジェクトの状態を表すために使用される場合があります。


ex)184 cm,74 kgの「工兵酒」対象は355 ml量の「コーラ」対象を所持している.
→工兵主義状態は身長(値)、体重(値)、コーラ(対象)で表すことができる
✔ААААААА
コンフィギュレーションオブジェクトの単純な値をアトリビュート(Attribute)と呼びます.

→すべてのオブジェクトの状態を単純な値とオブジェクトの組み合わせで表すことができ、これらのオブジェクトの状態を構成するすべての特徴を総称して属性と呼ぶ


✔勘定科目オブジェクトのステータスは、オブジェクトの静的属性値と動的属性値から構成されます


¥オブジェクトは自主的に存在し、オブジェクト向けの世界では、オブジェクトが他のオブジェクトの状態に直接アクセスすることも、その状態を変更することもできません。


→外部オブジェクトがオブジェクトの状態を間接的に変更または照会できる動作

アクション


オブジェクトの状態は自分では変更されず、オブジェクトの自発的な動作のみが変更されます。


→オブジェクトがとる行動がオブジェクト自身の状態を変える(Side Effect:副次的効果)
✔対象の行為が状態によって影響される(対象の状態による行為を示す)
→インタラクションが現在の状態にどのように依存するか
応接間の「工兵主」の対象身長は184 cmなので、部屋に通じる180 cmの「門」の対象を通すことができません.
勘定科目の勘定科目オブジェクトの動作変更ステータス
→インタラクティブに現在の状態を変える方法
ex)74 kgの「工兵酒」対象で300 kcalの「ハンバーガー」対象300個を食べたところ、76 kgになりました.

→過去の行動を確認する必要はなく、行動時の属性を利用するだけで行動できる


協力と行動(協力対象の共同体)


✔¥どんな相手も島ではない→相手は自分の責任を果たすために他の相手と協力する


✔¥オブジェクトが他のオブジェクトと連携する唯一の方法は、他のオブジェクトにリクエストを送信することです


✔¥オブジェクトはメッセージのみで他のオブジェクトと通信できます


→相手は受け取った情報に応じて適切に行動し、協力に参加し、それによって自分の状態を変える

💡 オブジェクトは、動作によって他のオブジェクトとコラボレーションする必要があります。したがって、動作は外部で表示する必要があります。


パッケージング状態


現実世界における客体と客体世界に向かう重要な違い


→現実世界では「空き瓶酒」という客体は「コーラ」を飲む客体の能動的存在である.
「コーラ」という対象は現実世界では何もできない受動的な存在です.
→しかし、客体指向の世界では、すべての客体が「自分の状態を自己管理する自律的」な存在である
「空き瓶酒」の対象は、「コーラ」の対象を飲んだ後、自分の体重状態を直接変えるようなものだ.
「コーラ」の対象も「工兵主」に食べられた後、残りのコーラ量の状態を変える主体は「コーラ」の対象でなければならない.

このため、空きボトルのオブジェクトは、コーラの残りの量の状態を直接変更することはできません。


コーラを飲んだというメッセージは「コーラ」の相手にしか伝えられません
→そのため、「空き瓶酒」は「コーラ」だけを要求し、自分の「体重状態」を増やし、私が飲んだように「コーラ」の「残量状態」を減らす.また、「コーラ」のメッセージを受けた「コーラ」は「残量」を減らすかどうかを決める.
「空き瓶酒」は「コーラ」の「残量状態」が減ったかどうか分からない.

カプセル化


→いわゆる抽象カプセル内では,状態を外部に曝さず,行動のみを外部に曝す.また、外部でのみオブジェクトにアクセスできる動作


エアコンに温度up、温度down、温度checkの3種類のボタンがあることを想像してみてください.3つのボタンは外部に露出する動作です.また,温度上昇と温度低下挙動は温度という「状態」を変化させることができる.温度チェックで「温度状態」がわかります.
💡' 「ここは温度を外に出さないんだって?」自問自答
→考えてみると、「私」という対象はエアコンの温度チェックボタンを押すだけで、「エアコン」の対象に「あなたの温度を見せてください」というメッセージを出して、応答するかどうかはエアコンの対象が自主的に選んだものだと思います.
→また、温度が上がったり下がったりしたときに、温度チェックボタンを押さなかったので、温度という状態については、外に露出しないと思います.

表計算ドキュメント


→協力に参加する相手同士の協力が柔軟で簡潔になる.

識別子:値とオブジェクト


オブジェクトは識別可能であり、オブジェクトに属性がある。


→属性によって異なるオブジェクトを区別する

値段


値は、数値、文字列、視点、金額などの不変の量をモデリングします。


→値の状態は変わらない
💡 ' 「時間が経つにつれて、視点が変わっていくのに、どうして変わらないの?」自問自答
→10時から11時に変更するのではなく、10時に1つの値、11時に1つの値です.
△もし誰かがこの文章を読んで、私の理解が間違っていると思ったら、教えてください.
[email protected] )

2つのインスタンスのステータスが同じである場合、それらは同じとみなされます。


紙に「A」と2つ書いてあると、人々は見て同じ字だと思っています.
→状態に基づいて2つの値が等しいか否かを判断する性質:等しい(equality)

値を表す用語:値オブジェクト(valueobject)値オブジェクトvalueobject


オブジェクト


オブジェクトには、時間とともに変化するステータスが含まれ、動作によってステータスが変更されます。


→オブジェクトに可変状態があります.したがって、状態によって対象が同一か否かを判断することができる

💡 オブジェクトの状態が同じであっても、2つのオブジェクトは独立した個別のオブジェクトとして扱われます。


名前と身長が同じ「対象」が2つあっても、この2つは異なる人格体です

したがって、オブジェクトには、ステータスに関係なく、他のオブジェクトと自身を区別する識別子の属性があります。


→識別子により対象が同一であるか否かを判断する:同一性(idential)

対象が状態に基づいて一致性判定を行うことができない→識別子による一致性判定を行う


→時間が経つにつれてオブジェクトの状態が変化するため

用語:参照オブジェクト(reference object)またはエンティティ(entity)


行動決定状態:状態を中心に対象を見ない


まず状態を決め、行動の仕方を決めるマイナスの影響


1 . カプセル化障害


→状態に焦点を当てると、状態が外部界面に露出する可能性があるため、カプセル化されにくい.

2 . パートナーではなく、オブジェクトを孤島にする


→オブジェクトがアプリケーション内で他のオブジェクトと連携して、オブジェクトの共通の目標を達成する-プログラムの円滑な実行.
しかし、協力的に行動するのではなく、状態を中心に対象を見ていると、協力できない対象が作られます.

3 . オブジェクトの再使用不可


→同様に、客体の再利用性は多様な協力に参加する能力から来ている.
ただし、コラボレーションに参加しにくいオブジェクトを作成すると、オブジェクトの再利用性も低下します.

対象の行為は対象の行為を決定する。


✔¥新規オブジェクトを作成する場合は、特定のプログラムで連携して新規オブジェクトを作成する必要があります。したがって,広義のプログラム全体の協力の観点,狭義の協力客体の行為の観点から客体を設計すべきであると考える.


✔」対象が全体的にどのような協力行動を取るべきか、どのような責任を負うべきかを決めると、対象に必要な状態が自然に現れる


責任-設計主導


→客体の行為は最終的に全体的に客体の責任を意味する.そのため、どのような責任を負う必要があるかを決定するプロセスは、設計全体を主導しなければならない.

隠喩とオブジェクト


「対象に向かうのは現実世界の模倣」という言葉について質問です。


多くの人は対象が現実世界の様々な対象を模倣したり抽象したりすることを指していると考えている.
→現実世界の対象を観察し、それらの特性を要約し、要約し、ソフトウェアの対象とし、抽象化する能力が重要である.

しかし、対象に向かうのは現実世界の「単なる模倣」ではない。


ソフトウェアのオブジェクトは、現実のオブジェクトとは異なる様相を呈しています.
ex)ソフトウェア商品は,実世界の商品に及ばない価格設定が可能である.
→ソフトウェアオブジェクトは、実世界のオブジェクトを簡単に模倣するのではなく、特性の異なるものです.

擬人画


現実のオブジェクトとソフトウェアの最大の違い


✔現実の受動オブジェクトがソフトウェアオブジェクトによって実現されると、そのオブジェクトはアクティブオブジェクトになります.
「工兵主」オブジェクトが「仮面」オブジェクトをゴミ箱に投げ込むと仮定します.マスクの「位置状態」は工兵主からゴミ箱に変えるべきで、対象に向かう場合、状態を変える主体は自分だけだ.しかし現実世界では、仮面は自分の位置を変えることはできない.

АААААААААААААААААА\


客体に向かう世界は現実世界を隠喩する


隠喩


→実際に適用されない場合は,一つの概念を用いて別の概念の対話形式を述べる.
→物事を別の角度から理解し体験する
非表示の概念を使用して、ソフトウェア・オブジェクトを現実のオブジェクトに比喩して表現および設計します.
上記のマスクを例にとると、現実世界のマスクはソフトウェア上のマスクのように自分の位置を変えることはできないと思います.同じものや模倣というより、ソフトウェア上のマスクを現実世界のマスクにたとえて構造化し、設計しています.

表現上の相違


✔実際のオブジェクトの名前をソフトウェアオブジェクトの名前と同じまたは類似させて表示の違いを減らします.
→ソフトウェアの構造を容易に予測することができ、その対象の責任をある程度容易に理解し理解することができる.

💡 要するに、オブジェクト向けの目的は現実を模倣することではなく、現実世界に対してソフトウェア世界を設計することであり、ソフトウェアオブジェクトの名前は現実世界に対応するオブジェクトの名前に対して相対的であったり、同じ名前を用いてオブジェクトの特性をよりよく理解したりすることができる。