我是OOP的新手,有一个一般性的问题。
想象一下,我有两个类:AddressBook
和Contact
。通讯录包含0-n个联系人。
您将getAllContactsFromAddressBook()
方法放在哪里?
class AddressBook {
private $addressBookId;
function __construct($addressBookId) {
$this->addressBookId = $addressBookId;
}
// HERE?
// getAllContactsFromAddressBook() { ... }
}
和
class Contact {
private $contactId;
function __construct($contactId) {
$this->contactId = $contactId;
}
function getContactDetails($contactId) { ... }
// OR BETTER HERE?
// getAllContactsFromAddressBook($addressBookId) { ... }
}
在这种情况下的最佳做法是什么?感谢您的解释!
最佳答案
我将AddressBook
方法放到getAllContacts
类中。
只需尝试阅读一下函数调用的样子
$addressBook = new AddressBook();
$addressBook->getAllContacts();
联系人属于地址簿,因此您要求地址簿给您他的联系人。