ФорумПрограммированиеPHP для идиотовPHP и ООП → Ин/декремент переменной. Как вы поступаете в условиях инкапсуляции?

Ин/декремент переменной. Как вы поступаете в условиях инкапсуляции?

  • Rotten

    Сообщения: 2243 Репутация: N Группа: Адекваты

    Spritz 13 октября 2010 г. 19:30

    Я стараюсь, конечно, соблюдать инкапсуляцию, и по возможности сокрываю свойства… делая лишь публичными геттеры…
    Но бляь…
    Писать в стиле
    $localVar = ($this->getVar()+1);

    вместо
    $this->var++;

    чесно говоря, иногда так заебует… Может от непривычки просто. Да и код какойто не так читабельнее как в краткой форме…

    Вы как пишите, вообще?
  • vasa_c

    Сообщения: 3131 Репутация: N Группа: в ухо

    Spritz 13 октября 2010 г. 19:47, спустя 16 минут 58 секунд

    У объектов нет переменных.
    Есть методы: сделай то, скажи то.
    А свойства, это внутренняя реализация, её трогать не надо.
    Спустя 165 сек.
    То есть, когда говоришь объекту дайДлинуЧлена(), то "длина члена" для внешнего кода, это характеристика этого объекта, а не переменная.
    А то, что она внутри хранится пусть и в одном свойстве, которое называется $длинаЧлена, это никого не волнует.
  • Rotten

    Сообщения: 2243 Репутация: N Группа: Адекваты

    Spritz 13 октября 2010 г. 20:04, спустя 17 минут 20 секунд

    Тебе лекции студентам читать… да и то на аспирантуре)…
  • Абырвалг

    Сообщения: 6480 Репутация: N Группа: Джедаи

    Spritz 13 октября 2010 г. 21:05, спустя 1 час 19 секунд

    че-то я не припоминаю, что бы когда-то нужно было делать инкремент извне класса
  • krasun

    Сообщения: 1370 Репутация: N Группа: Джедаи

    Spritz 13 октября 2010 г. 22:16, спустя 1 час 11 минут 41 секунду

    согласен с Абырвалг
  • Rotten

    Сообщения: 2243 Репутация: N Группа: Адекваты

    Spritz 13 октября 2010 г. 22:44, спустя 27 минут 40 секунд

    так это и не "извне класса".. Это в нем же… По-вашему я там "this" написал просто так, ради лулзов?
  • krasun

    Сообщения: 1370 Репутация: N Группа: Джедаи

    Spritz 13 октября 2010 г. 22:46, спустя 2 минуты 21 секунду

    тогда вообще нет и проблемы
  • adwo

    Сообщения: 913 Репутация: N Группа: Джедаи

    Spritz 13 октября 2010 г. 22:51, спустя 5 минут 1 секунду


    так это и не "извне класса".. Это в нем же… По-вашему я там "this" написал просто так, ради лулзов?


    А зачем тебе использовать геттеры внутри класса?
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 13 октября 2010 г. 22:54, спустя 3 минуты 8 секунд



    так это и не "извне класса".. Это в нем же… По-вашему я там "this" написал просто так, ради лулзов?


    А зачем тебе использовать геттеры внутри класса?
    потому что по-хорошему, свойство - все таки не всегда просто переменная, бывает это функция. в более продинутых языках есть большой плюс в том, что свойства обладают геттерами и сетерами.

    простой пример - SqlCommand например, если у него сделать $command->getCount(), то это будет вызван sql запрос и посчитано количество элементов, предпосчеты таких вещей безсмысленны. в пхп все гооворят "нахуй это надо - все свойства через геттеры забирать", это всего лишь потому что пхп - все таки всего лишь пхп. в том же .net всегда обращение идет к функциям геттерам
    Спустя 26 сек.
    ибо у него синтаксис знает что такое геттер и сеттер и вызывает их при обращении к полям объекта похую откуда - изнутри или извне
    Сапожник без сапог
  • adwo

    Сообщения: 913 Репутация: N Группа: Джедаи

    Spritz 13 октября 2010 г. 23:04, спустя 9 минут 43 секунды

    потому что по-хорошему, свойство - все таки не всегда просто переменная, бывает это функция

    свойство хранит состояние объекта, а функция - это уже метод и он управляет этим состоянием
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 13 октября 2010 г. 23:08, спустя 4 минуты 11 секунд

    свойство хранит состояние объекта

    жизнь далека от учебников, в учебниках да, так.
    Сапожник без сапог
  • adwo

    Сообщения: 913 Репутация: N Группа: Джедаи

    Spritz 13 октября 2010 г. 23:09, спустя 34 секунды


    свойство хранит состояние объекта

    жизнь далека от учебников, в учебниках да, так.
    пример? :)
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 13 октября 2010 г. 23:09, спустя 20 секунд

    adwo, я кажется уже привел :)
    Сапожник без сапог
  • arvitaly

    Сообщения: 292 Репутация: N Группа: Адекваты

    Spritz 13 октября 2010 г. 23:18, спустя 9 минут 6 секунд

    пример? :)


    А зачем вычислять свойство до того, как оно понадобится?
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 13 октября 2010 г. 23:25, спустя 6 минут 19 секунд

    и на самом деле через геттер всегда - пиздато, тоже пример) седня прет на примеры))

    есть дохуя ода, который оперирует например моделями, то есть дохуя где идет обращение к полям объекта, есть например поле объекта "фамилия", было у нас в свое время это простым полем, потом переделали базу данных, завели такой объект как ФАМИЛИИ, и таблицу связей one => many. и фамилия стала зависеть от таких вещей как "дата просмотра информации о объекте", тобишь у нас появилась девичья фамилия и обычная, мы можем написать геттер под это свойство(это как наследование устроено, если нет геттера - есть типа стандартный дал-взял, хочешь - опиши свою функцию, но все равно код был obj.field и таким останется, это прозрачно) и все, теперь у нас ест ьвот такая сложная зависимость, которая была реализована ПО ВСЕМУ проекту всего лишь внедрением одного геттера)
    Спустя 32 сек.
    во какую хуйню соорудил) это ситуация, а не реальность, в реальности есть и другие костыли очевидно, которыми можно подпереть эту больную ногу :D
    Сапожник без сапог

Пожалуйста, авторизуйтесь, чтобы написать комментарий!