例如,我有class Doctor
想要使用class Postman
的服务。
在代码方面看起来如何?
public class Doctor
{
...
void doCheckup(Patient);
void sendMail(){ // want to use services of a Postman here }
}
public class Postman
{
void sendMail(...){ ... }
}
我可能会将Doctor::sendMail()
定义为
void sendMail()
{
Postman A = new Postman();
A.sendMail(...);
}
这是对的吗?
如果是,那么为什么'博士'会创造一个'邮差'?它听起来真的远离现实生活场景。这是对象之间共享消息的方式吗?
答案 0 :(得分:2)
更惯用的方式是:
void sendMail(Postman postman) {
postman.sendMail(...);
不要在第一个对象内创建另一个对象。
在旁注中,Doctor::sendMail
是C ++语法。在Java中,没有::
答案 1 :(得分:1)
如果您正试图制作一个真人世界模型"然而,你会有一个全局的PostOffice对象,它包含许多Postmen。
医生可以成为DoctorOffice或医院的一部分
Doctor会有一个成员变量指向HIS Postman
Doctor.Postman = aPostmanObject;
然后他会让邮递员完成这项工作。
Doctor.Postman.SendMail();
假设您制作了" SendMail"邮递员的公共方法(就像他作为公共服务一样这样做)