站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2SE 专题关于类的设计

关于类的设计

摘要: 关于类的设计


假设我现在想设计一个"车"类,和一个"人"类,我需要一个方法,就是"人开车",请问这个方法应该放在哪个类中比较好,当然两个类中都有办法实现,但总有一种方案会实现的比较完美,请大家说明为什么这么设计的原因...


你自己也说了嘛
"人开车"当然放到"人"类啦


“人开车”是谁的动作啊?
是“人”的,那就“人”去实现。


当然是人类了


你可以这样想 "人类"是要"开"是一个动作 "车类"要"移动"是另外一个动作
当"人类"的"开"的动作 作用在"车类" 的动作上时 车才移动

是比较绕 呵呵 实现的方法有好多 看你怎么想啦


use-a


如果把方法写在"人"类上,那不是一但有一个对象需要人来操作就得在"人"上面加个方法吗,如果放在"车"类里面,一旦我需要什么方法我就接收人的引用不就行了,那样想要生成"飞机"类/"电视"类等等,不需要直接改"人"这个类就行了


当然是人类中了,人是主语呀


人类中


如果把方法写在"人"类上,那不是一但有一个对象需要人来操作就得在"人"上面加个方法吗,如果放在"车"类里面,一旦我需要什么方法我就接收人的引用不就行了,那样想要生成"飞机"类/"电视"类等等,不需要直接改"人"这个类就行了

__________

你的这段话前后矛盾。方法写在车类中,那么飞机就和人没有关系,你就还得在飞机类写个方法去开飞机,但是你只要写在人类中,将飞机作为参数传进去,只要接口一样不就方便了?


飞机类 车类 都有个方法run()
然后人类 有个方法去调用run()


interface Vehicle{
void run();
...
}

interface Man{
void drive(Vehicle aVehicle);
}


开车当然写在人类里了

但是车类里应该有个车启动


人类。。。
就像是人吃饭,当然放在人里了,总不能放在饭里吧。。。


emin_lee() 的不错。
interface Vehicle{
void run();
...
}

interface Man{
void drive(Vehicle aVehicle);
void drive(Plane aPlane);
void drive(Tank aTank);
...
}




interface Vehicle{
void run();
...
}

class Plane implements Vehicle{
public void run(){}
}

class Tank implements Vehicle{
public void run(){}
}

interface Man{
void drive(Vehicle aVehicle);
...
}



应该用人类包含ABSTRACT的驾驶方法,然后实例化一个司机的对象,覆盖那个驾驶的方法...应该可以吧...


如果人开车 那就是主动式 在人的类中设计一个接口,把车作为参数
如果相反 那就是被动式 在车的接口中设计一个接口 同样可以实现


开车当然写在人类里了

但是车类里应该有个车启动



人类
但是要实例化一个车类


同意接口或者ABSTRACT的方法,统一接口,扩充性好


↑返回目录
前一篇: 有没办法检查出一个程序(exe文件)是不是用java写的?
后一篇: 100分~求分析一道高数题~~