画图可以帮助理解和分析问题。
面向对象设计一个重要经验:
谁拥有数据,谁就对外提供操作这些数据的方法
需要思考出事物本质
案例1:
人在黑板上画圆。三个对象人,黑板,圆。画圆的动作属于哪个对象上的方法?
画圆需要圆心和半径,数据属于圆。所以方法需要写在圆对象里
案例2:
列车司机刹车。刹车的动作属于谁的方法?
列车司机是方法的请求者,刹车的具体操作属于列车内部的行为。所以刹车方法属于列车
案例3:
售货员统计票据金额。统计在售货员上,还是在票据上?
金额属于票据,所以方法在票据上。
案例4:
人关门.关门的动作属于人还是门?
锁闩的闭合是门提供的。人是动作的发起者,而门是动作的实施者所以是门。
总结:
谁是动作的具体实施者,并且该数据属于该对象的属性。方法就属于谁。
对象中有数据,内部应该有其提供处理的方法。