以下类展示了 Java 中的组合
的概念:
//Imagine constructors, accessors & mutators has already been created..
class Person{
private String name;
private Job job; //Person has Job
}
class Job{
private String name;
private double salary;
}
我的问题是:如果我想从 Person 那里获得工资,以下 2 个选项中哪一个是更好的做法?
1.找到人的工作,然后从人的工作中获得薪水
System.out.println( person.getJob().getSalary() );
或
2.亲自创建一个 getSalary 方法,这样我就可以这样做:
System.out.println(person.getSalary());
创建一个首先从工作中获取薪水的方法。
class Person{
private String name;
private Job job;
public static double getSalary(){ //Is doing this redundant and bad practice?
job.getSalary();
}
}
最佳答案
方法 2 比方法 1 稍好一些,因为从人员获取工资的代码不依赖于任何类型的 Person->Salary
关系实现。您可以自由更改工资的计算方式。在现实生活中,你可以在不了解某人的工作的情况下询问他的薪水是多少。在你的代码中,骗子甚至可以为他返回一个虚构的工资等等。
说实话,我坚持认为方法 1 无论如何都不能被认为是坏的或错误的,它在常见情况下只有很小的缺点......
关于java - 在Java中实现组合的好方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27461857/