这个方法属于哪个类?

Lio*_*nel 2 php oop

我对OOP很新,并且有一个普遍的问题.

想象一下,我有两个课程:AddressBookContact.地址簿包含0-n个联系人.

你会把方法放在哪里getAllContactsFromAddressBook()

class AddressBook {
    private $addressBookId;

    function __construct($addressBookId) {
         $this->addressBookId = $addressBookId;
    }

    // HERE?
    // getAllContactsFromAddressBook() { ... }
}
Run Code Online (Sandbox Code Playgroud)

class Contact {
    private $contactId;

    function __construct($contactId) {
         $this->contactId = $contactId;
    }

    function getContactDetails($contactId) { ... }

    // OR BETTER HERE?
    // getAllContactsFromAddressBook($addressBookId) { ... }
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,最佳做法是什么?谢谢你的解释!

Ale*_*dro 8

我会在内部类中放入AddressBook方法getAllContacts.

试试看看函数调用的样子

$addressBook = new AddressBook();
$addressBook->getAllContacts();
Run Code Online (Sandbox Code Playgroud)

联系人属于地址簿,因此您要求地址簿为您提供联系人.