(零雨其蒙原創(chuàng) 轉(zhuǎn)載請注明)
2007
年
3
月
7
日星期三
?
準則
??
當有多個局部信息專家有待選擇時,將職責賦予具有支配作用的信息專家,即持有主要信息的對象。這樣有助于支持低耦合
?
?
命令
-
查詢分離原則
CQS
(
Command-Query Separation Principle
)是針對方法的經(jīng)典
OO
設計原則
[Meyer88]
。該原則指出,任何方法都可能使如下情況之一:
l????????
執(zhí)行動作(更新、調(diào)整,……)的命令方法,這種方法通常具有改變對象狀態(tài)等副作用,并且是
void
的(沒有返回值)。
l????????
向調(diào)用者返回數(shù)據(jù)的查詢,這種方法沒有副作用,不會永久性的改變?nèi)魏螌ο蟮臓顟B(tài)。
關鍵是
,一個方法不應該同時屬于以上兩種類型。
?
?
?
第
19
章
對可見性進行設計
?
對象之可見性
??
為了使發(fā)送者對象能夠向接受者對象發(fā)送消息,發(fā)送者必須具有接受這的可見性,即發(fā)送者必須擁有對接收者對象的某種引用或指針
?
?
實現(xiàn)對象
A
到對象
B
的可見性的四種方式
l????????
屬性可見性——
B
是
A
的屬性
l????????
參數(shù)可見性——
B
是
A
中方法的參數(shù)
l????????
局部可見性——
B
是
A
中的方法的局部對象(不是參數(shù))。
●
創(chuàng)建新的局部變量實例并將其分配給局部變量
●
將方法調(diào)用返回的對象分配給局部變量
l????????
全局可見性——
B
具有某種方式的全局可見性
?
?
自己的話:
終于把
GRASP
這兩章看完了,真是費了不少腦筋,明天學習的內(nèi)容我就不比較喜歡了,應該會很輕松。后續(xù)的第四部分將介紹
GRASP
其他模式和
GoF
設計模式,這兩部分都是有所接觸的,不是什么新知識,學起來應該相對輕松些。而第五部分,則又包含了大量章節(jié)來講解大量細致的內(nèi)容,這部書真的是值得一買精讀數(shù)遍的好書啊!
?