Вопрос

Я делаю новый класс в PHP. Я не ожидаю, что этот класс когда-либо продлен. Должен ли я беспокоить составить классные члены частным и реализовывать функции Getter и Setter?

Часть меня считает, что это просто большая пустая трата времени и служит только для навязки моего кода.

Класс для резюме. Я пишу это в коде, чтобы продемонстрировать мой стиль кодирования. Вопрос в том, будет ли работодатель хотеть увидеть Getter и Benters, или это просто бесподоит вещи?

Это было полезно?

Решение

Я не буду беспокоиться, если бы я был тобой. Вы правы, что украшение просто загромождает ваш класс.

Другие советы

Я еще раз не хочу повторить аргумент, что даже то, что вы не ожидаете наследства сейчас, вам все равно может понадобиться в будущем, но они все еще более причины использовать Getter и Setters:

  • Геттерс и загадки позволят вам легко реализовать проверку ваших свойств
  • Ваш код будет следовать хорошим руководящим принципам кодирования, и так же будет проще прочитать другими. Если я столкнулся с файлом кода, который не использовал GetTers и Setters, я был бы очень скептически по этому поводу и придется внимательно прочитать это много раз.
  • Также это не только решение в классе, но решение для всего вашего проекта. Вы хотите иметь Getter и Getters для некоторых классов, которые вам нужны, а не для некоторых других? Я считаю, что согласованность важна.
  • Есть инструменты, которые могут автогенерировать писать геттерс и загадки для вас. Помните, что вы пишете код только один раз, но вы прочитаете это много раз,

Проверьте Magic Magic Mistic __get и __set, он будет держать ваш код чистым, и вам не придется лениться, чтобы не устанавливать переменную Scopel.

public function __get($name)
{
  return $this->$name;
}

public function __set($name, $value)
{
  $this->$name = $value;
}

Очевидно, у вас будет более подробно, но это будет справиться с вашими доступами.

Вы можете никогда не узнать, что вам не нужно будет распространять класс в будущем. Что будет делать класс? Насколько это сложно?

Инкапсуляция является частью хорошего дизайна OO. Но хороший дизайн OO не является целью программирования. Цель состоит в том, чтобы иметь вещи, которые работают и сможете легко изменять их, когда это необходимо.

Вы можете просто переопределить __get & __set, насколько я понимаю.http://php.net/manual/en/language.oop5.overloading.php.

Мне нравится делать свойства в своем классе защищенным или частным, а затем использовать GetTers и Getters. Затем я использую код в уставах, чтобы убедиться, что значения свойств в пределах принятых диапазонов. Мне нравится этот подход, так как я обнаружил, что он облегчает отладку, так как я всегда могу быть уверен, что принимаемое значение устанавливается, или исключение выдается. Это также дает мне больше уверенности в том, что когда я пропускаю объекты вокруг ценностей, проводящихся в свойствах, не собирается вызывать ничего, чтобы взорвать.

Если это для резюме, вполне вероятно, что они стоят столько (или больше) о вашей логике, поскольку они делают небольшие детали, такие как Getter / Benters.

Если бы это было я, я бы сделал их публичными без Getter / Benters, но включите комментарий над ними, заявив что-то вдоль линий «рассмотреть возможность сделать эти частные и использование GetTers / Setters в зависимости от объема применения и предпочтительного стиля кода из команды "

Сюда:

  1. Ваш код резюме не загроможден

  2. Они понимают, что вы не просто ленивы и делают все публику без причины

  3. Он показывает, что вместо вслепую после определенного стиля вы бы рассмотрели конкретное заявление при принятии решения.

Вы хотите сделать что-то особенное на наборе или получить (или только один из них в частном порядке)?

Если нет, то не тратьте свое время на них.

Вы ничего не набираете на этом, если вы не используете их «особым образом», и, возможно, это даже замедление

Если вы не планируете иметь конкретное поведение при настройке или доступа к тему имуществом, он не много не имеет большого количества.

Если вам необходимо иметь определенное поведение при доступе или изменения тех свойства позже, вы всегда можете перегружать метод __set и __get.

Видеть : http://php.net/manual/en/language.oop5.overloading.php.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top