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

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

  • Rotten

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

    Spritz Окт. 13, 2010, 7:30 п.п.

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

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

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

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

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

    Spritz Окт. 13, 2010, 7:47 п.п., спустя 16 минут 58 секунд

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

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

    Spritz Окт. 13, 2010, 8:04 п.п., спустя 17 минут 20 секунд

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

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

    Spritz Окт. 13, 2010, 9:05 п.п., спустя 1 час 19 секунд

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

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

    Spritz Окт. 13, 2010, 10:16 п.п., спустя 1 час 11 минут 41 секунду

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

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

    Spritz Окт. 13, 2010, 10:44 п.п., спустя 27 минут 40 секунд

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

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

    Spritz Окт. 13, 2010, 10:46 п.п., спустя 2 минуты 21 секунду

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

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

    Spritz Окт. 13, 2010, 10:51 п.п., спустя 5 минут 1 секунду


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


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

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

    Spritz Окт. 13, 2010, 10:54 п.п., спустя 3 минуты 8 секунд



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


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

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

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

    Spritz Окт. 13, 2010, 11:04 п.п., спустя 9 минут 43 секунды

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

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

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

    Spritz Окт. 13, 2010, 11:08 п.п., спустя 4 минуты 11 секунд

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

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

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

    Spritz Окт. 13, 2010, 11:09 п.п., спустя 34 секунды


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

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

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

    Spritz Окт. 13, 2010, 11:09 п.п., спустя 20 секунд

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

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

    Spritz Окт. 13, 2010, 11:18 п.п., спустя 9 минут 6 секунд

    пример? :)


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

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

    Spritz Окт. 13, 2010, 11:25 п.п., спустя 6 минут 19 секунд

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

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

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