事實上,你已經意識到我們應該能夠從User
的實例獲取用戶組。
在最基本的層面上,您應該確實有一個setGroup
和getGroups
方法。您甚至可以添加另一種稱爲setGroups
的方法,其中添加了一個Group
實例(或GroupCollection
)的數組。
爲了讓你在正確的道路上,你可能想要做的事,如:
class Users {
protected $groups = array();
public function __construct()
{
// ...
}
public function setGroup (Group $group)
{
array_push($this->groups, $group); // may require private addGroup method depending on how complex the registration is
}
public function getGroups()
{
return $this->groups;
}
}
你會發現我使用的方法setGroup
和getGroups
。就像我上面所說的,你可以包含另一種叫做setGroups
的方法。這有點複雜,但基本上你需要的是另外一個叫做GroupCollection
的課程,它基本上是一個Groups
的榮耀陣列。那會是這個樣子:
class Users {
protected $groups;
public function __construct()
{
$this->groups = new GroupCollection;
}
public function setGroups (GroupCollection $groupCollection)
{
$this->groups = $groupCollection;
}
public function addGroups (GroupCollection $groupCollection)
{
$this->group->merge($groupCollection);
}
public function addGroup (Group $group)
{
$this->groups->addGroup ($group);
}
public function getGroups()
{
return $this->groups; //returns a GroupCollection
}
}
你可以得到相當詳細的用這種東西 - 這一切都取決於你想要做什麼和怎麼複雜也。以上我使用的是更高級的域對象,但如果你剛剛開始,我建議閱讀更多的OOP。我給了你幾個例子來展示你如何深入這些對象,隨時隨地玩耍並提出更多問題。
是的,你可以做到這一點。開始閱讀關於OO設計。 :) – Achrome
你爲什麼不試試呢? – Barmar