我想了解更多关于类设计的知识,并遇到了一个困境。假设我有三个抽象的在线拍卖:出售,卖方和买方。 A卖方有卖方和买方。卖方和买方有类似的字段集合,例如姓名,电话号码和地址,并且将它们分组为单个类别是有意义的,例如Person。然后,我们可以集中代码,为抽象人类中的字段和访问者集中代码,并为教师和学生提供特定的类型。抽象方法vs继承
这可能会导致代码,如:
class Sale {
Person teacher;
Person student;
String description;
int hourlyRate;
// Some lesson methods
}
abstract class Person {
private String name;
private String address;
private String telephoneNumber;
// Getters & setters...
}
class Seller extends Person {
// Some teacher stuff
}
class Buyer extends Person {
// Some student stuff
}
现在,应用需求纳入企业对企业客户,但由于卖方和买方的类型的人,他们没有融入我们的类层次结构。如果我们使用一个接口,这可能会被阻止,但我们需要复制不同的联系人字段。
这种情况最好的办法是什么?
通过组合而不是继承考虑扩展。在此过程中,您可以同时使用抽象类和接口,其中卖方和买方包含由接口定义的某种代理,并且您的人抽象类实现接口,并且抽象业务客户端实现接口。 –
@HovercraftFullOfEels你能提供一个例子吗? – kiruwka
要问的一个重要问题是,一个人可以是**卖方还是买方? –