У меня есть следующий класс: «Бог класс»Что такое лучший дизайн?
class User {
public function setName($value) { ... }
public function setEmailAddress($value) { ... }
public function setUsername($value) { ... }
public function getName() { ... }
public function getEmailAddress() { ... }
public function getUsername() { ... }
public function isGroupAdministrator($groupId) { ... }
public function isMemberOfGroup($groupId) { ... }
public function isSiteAdministrator() { ... }
public function isRoot() { ... }
public function hasModulePermission($moduleId, $recordId, $permissionCode) { ... }
public function hasGroupPermission($groupId, $permissionCode) { ... }
public function hasContentPermission($recordId, $permissionCode) { ... }
public function hasModulePermission($moduleId, $recordId, $permissionCode) { ... }
public function canLogIn() { ... }
public function isLoggedIn() { ... }
public function setCanLogIn($canLogIn) { ... }
}
Это становится
Я не уверен, должен ли я разбить этот класс. Проблема в том, что методы этого класса используются его доменом для определения того, показывать ли данные элементы пользовательского интерфейса на веб-страницах, поэтому в классе нет никакого поведения.
Я полагаю, что я мог бы использовать связанные с разрешением методы в некотором классе Permission, делая эти методы статическими (например. :: userIsGroupAdministrator (...), :: userIsMemberOfGroup (...) :: userHasGroupPermission (...), :: userHasContentPermission (...))
Любые предложения о том, как этот класс может быть лучше?
I предложить пометку как «php» или «language-agnostic» для улучшения видимости. –