一道很有趣的题

yilexxy yilexxy 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
题目:假设是原始社会,有石头,2块石头互磨可以变成石刀,石刀可以去砍木头,木头被砍成木材,木材可以组成椅子,请你用oo的 思想把这些事物和他们之间的关系表达出来,但是要考虑到以后可能我会增加以下几点: "1.有可能我还想让石刀去砍椅子,把椅子砍成木材,2.可能我还想让石头增加关系,例如互相砸,互相摔,而不只是磨,也可以变 成石刀,3也许我又要多添一百种不同的事物,再多添120种不同的关系... " 也就是说我的要求可能是不断变化的,所以你要怎么样设计这个oo的模型,可以让我在实行1,2,3条的时候只做最小的修改....

原来CSDN上有这个贴子,我在他们的基础上修改了一些,TX们有没有更完美的解决方案呢?

以下是我的理解:
package 原始社会

abstract class 抽象石头{
abstract 相砸(另一个石头){}
abstract 相摔(另一个石头){}
abstract 相磨(另一个石头){}
}

abstract class 抽象石刀 extends 抽象石头{
abstract 砍(木头){}
abstract 砍(椅子){}
}

class 石头 extends 抽象石头{
相砸(另一个石头){......}
相摔(另一个石头){......}
相磨(另一个石头){......}

}

class 石刀 extends 抽象石刀{
石刀 (石头1,石头2){......}
砍(木头){......}
砍(椅子){......}
}

class 木头{
}

class 木材 extends 木头{
木材(石刀,木头){
石刀.砍(木头);
......
}
木材(石刀,椅子){
石刀.砍(椅子);
......
}

}

class 椅子 extends 木材{
椅子 (木材1,木材2...){......}
}



...全文

相关推荐

评论 10
收藏 已收藏
分享
返回顶部
yilexxy
Java EE 67,535 成员 225,843 内容