首页新闻找找看学习计划

java面向对象设计的一个问题

0
悬赏园豆:50 [已解决问题] 解决于 2017-09-11 10:05

假设有两个人,张三和李四,有一天张三拿小刀把李四杀死了。请问这个过程涉及几个对象,杀死这个动作由谁提供。

HDWK的主页 HDWK | 菜鸟二级 | 园豆:206
提问于:2017-09-11 00:04
< >
分享
最佳答案
0

同一个场景在不同的上下文中有不同的设计。如果每个人都希望具备杀人的能力,那么把杀人的行为放在”人“类里,张三和李四都是这个类的实例。如果希望只有杀人犯才具备杀人的能力,那么杀人的行为不应该放了person类里

收获园豆:30
会长 | 大侠五级 |园豆:6275 | 2017-09-11 09:36
其他回答(4)
0

一般来讲,两个类:人类,刀类,你可以这么设计,人.使用(什么).杀死(谁) ,或者 刀.被使用(谁).杀死(谁) 

收获园豆:20
TCG2008 | 园豆:1145 (小虾三级) | 2017-09-11 09:15

 在设计的时候,有一个原则“谁拥有数据,谁对外提供操作这个数据的方法”,从这个角度来说,请问这里把杀死这个动作设计到刀上,还是人上更好?

支持(0) 反对(0) HDWK | 园豆:206 (菜鸟二级) | 2017-09-11 09:21

@HDWK: 

无所谓,人要掉命,刀要损耗,杀死这个方法,或者有,或者都有,或者都没有,你要深入的话,或许还有工厂类,控制类,业务类什么的,再说也可以设计可被杀死类、可以杀死(可被杀死类)类两个接口,人实现两个接口,刀实现一个接口

支持(0) 反对(0) TCG2008 | 园豆:1145 (小虾三级) | 2017-09-11 09:36
0

张三杀人不常有,而刀杀人常有

敲代码的小老头 | 园豆:216 (菜鸟二级) | 2017-09-11 09:30
0

人:

属性:刀,状态

方法:杀人

 

 

张三:有刀,活着:

李四:没刀,活着:

 

张三.杀人(李四);

 

 

张三:有刀,活着:

李四:没刀,死了:

猝不及防 | 园豆:1886 (小虾三级) | 2017-09-11 09:43
0



杀人犯接口

人实现杀人犯接口就有杀人方法,杀人方法需要提供刀对象

猿==猿 | 园豆:183 (初学一级) | 2017-09-14 17:24
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册