题目:假设是原始社会,有石头,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...){......}
}
package 原始社会abstract class 抽象石头{
abstract 相砸(另一个石头){}
abstract 相摔(另一个石头){}
abstract 相磨(另一个石头){}
}abstract class 抽象石刀 extends 抽象石头{
abstract 砍(木头){}
abstract 砍(椅子){}
} class 石头 extends 抽象石头{
相砸(另一个石头){......}
相摔(另一个石头){......}
相磨(另一个石头){......}
}class 石刀 extends 抽象石刀{
石刀 (石头1,石头2){......}
砍(木头){......}
砍(椅子){......}
}class 木头{
}class 木材 extends 木头{
木材(石刀,木头){
石刀.砍(木头);
......
}
木材(石刀,椅子){
石刀.砍(椅子);
......
}}class 椅子 extends 木材{
椅子 (木材1,木材2...){......}
}
解决方案 »
- 关于Oracle中数据类型为Timestamp的数据
- 求助..JSP+jquery 实现无刷新功能
- 请介绍一些网站流量统计的方法
- ibatis2 批处理
- spring Hibernate3 和struts2.0整合问题
- 想要struts教程里面例子helloapp喝addressbook的源代码,谁能贴给我啊?
- TOMCAT连接不断开问题
- oauth2.0服务器端java实现
- 一个有关JSP与数据库连接的问题..........
- 菜鸟问题, 我的j2ee 为什么启动不起来?
- 文件正被另一个程序使用,想调用这个文件却又不想将调用其的程序关闭
- 在jsp中怎么用form action提交两个submit 按钮
}abstract class 石刀 { abstract 木材 砍(木头 arg); abstract 木材 砍(椅子 arg);
}abstract class 木头 {
}abstract class 木材 { abstract 椅子 加工();
}abstract class 椅子 {
}