我想了解更多關於類設計的知識,並遇到了一個困境。假設我有三個抽象的在線拍賣:出售,賣方和買方。 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
要問的一個重要問題是,一個人可以是**賣方還是買方? –