同一个场景在不同的上下文中有不同的设计。如果每个人都希望具备杀人的能力,那么把杀人的行为放在”人“类里,张三和李四都是这个类的实例。如果希望只有杀人犯才具备杀人的能力,那么杀人的行为不应该放了person类里
一般来讲,两个类:人类,刀类,你可以这么设计,人.使用(什么).杀死(谁) ,或者 刀.被使用(谁).杀死(谁)
在设计的时候,有一个原则“谁拥有数据,谁对外提供操作这个数据的方法”,从这个角度来说,请问这里把杀死这个动作设计到刀上,还是人上更好?
@HDWK:
无所谓,人要掉命,刀要损耗,杀死这个方法,或者有,或者都有,或者都没有,你要深入的话,或许还有工厂类,控制类,业务类什么的,再说也可以设计可被杀死类、可以杀死(可被杀死类)类两个接口,人实现两个接口,刀实现一个接口
张三杀人不常有,而刀杀人常有
人:
属性:刀,状态
方法:杀人
张三:有刀,活着:
李四:没刀,活着:
张三.杀人(李四);
张三:有刀,活着:
李四:没刀,死了:
人
刀
杀人犯接口
人实现杀人犯接口就有杀人方法,杀人方法需要提供刀对象