(零雨其蒙原创 转载请注明)
								
2007
				
				年
				
						3
				
				月
				
						7
				
				日星期三
		
		
				
						
						
								 
						
				
		
		
				
						
								准则
								
										
										
								
						
				
				
						
								
										
												   
										
								
						
						当有多个局部信息专家有待选择时,将职责赋予具有支配作用的信息专家,即持有主要信息的对象。这样有助于支持低耦合
				
		 
		
				
						
								 
						
				
		
		
				
						
								 
						
				
		
		
				命令
				
						-
				
				查询分离原则
		
		
				
						CQS
				
				(
				
						Command-Query Separation Principle
				
				)是针对方法的经典
				
						OO
				
				设计原则
				
						[Meyer88]
				
				。该原则指出,任何方法都可能使如下情况之一:
		
		
				
						l         
				
				执行动作(更新、调整,……)的命令方法,这种方法通常具有改变对象状态等副作用,并且是
				
						void
				
				的(没有返回值)。
		
		
				
						l         
				
				向调用者返回数据的查询,这种方法没有副作用,不会永久性的改变任何对象的状态。
		
		
				
						关键是
				
				,一个方法不应该同时属于以上两种类型。
		
		
				
						
								 
						
				
		
		
				
						
								 
						
				
		
		
				
						
								 
						
				
		
		
				第
				
						19
				
				章
				
				
				对可见性进行设计
		
		
				
						
								 
						
				
		
		
				对象之可见性
		
		
				
						
								   
						
				
				为了使发送者对象能够向接受者对象发送消息,发送者必须具有接受这的可见性,即发送者必须拥有对接收者对象的某种引用或指针
		
		
				
						
								 
						
				
		
		
				
						
								 
						
				
		
		
				实现对象
				
						A
				
				到对象
				
						B
				
				的可见性的四种方式
		
		
				
						l         
				
				属性可见性——
				
						B
				
				是
				
						A
				
				的属性
		
		
				
						l         
				
				参数可见性——
				
						B
				
				是
				
						A
				
				中方法的参数
		
		
				
						l         
				
				局部可见性——
				
						B
				
				是
				
						A
				
				中的方法的局部对象(不是参数)。
		
		
				●
				
						
						
				
				创建新的局部变量实例并将其分配给局部变量
		
		
				●
				
						
						
				
				将方法调用返回的对象分配给局部变量
		
		
				
						l         
				
				全局可见性——
				
						B
				
				具有某种方式的全局可见性
		
		
				
						
								 
						
				
		
		
				
						
								 
						
				
		
		
				
						
								自己的话:
						
						终于把
						
								GRASP
						
						这两章看完了,真是费了不少脑筋,明天学习的内容我就不比较喜欢了,应该会很轻松。后续的第四部分将介绍
						
								GRASP
						
						其他模式和
						
								GoF
						
						设计模式,这两部分都是有所接触的,不是什么新知识,学起来应该相对轻松些。而第五部分,则又包含了大量章节来讲解大量细致的内容,这部书真的是值得一买精读数遍的好书啊!