Конференция "Прочее" » Верно ли это? [D6, XP]
 
  • Abcdef123 (10.11.08 03:32) [0]
    Программер, которому я не особо доверяю, сделал замечание, что согласно ООП надо вместо паблик переменных использовать паблик свойство. Верно ли это, если да, то почему?
    И второе, я назвала паблик переменную _DefKeyField, он сказал, чтоб я убрала первый знак из названия, то есть "_". Существенно ли это? Если да, то почему?
    Извините, может я не по теме данного форума, но это ж вопрос для начинающих.
    Спасибо заранее!
    Надя
  • Eraser © (10.11.08 03:47) [1]
    > [0] Abcdef123   (10.11.08 03:32)


    > что согласно ООП надо вместо паблик переменных использовать
    > паблик свойство

    да, только с поправочкой - в ООП, принятом в Делфи.

    > И второе, я назвала паблик переменную _DefKeyField, он сказал,
    > чтоб я убрала первый знак из названия, то есть "_". Существенно
    > ли это?

    правильно сказал. в Делфи это противоречит основным стандартам.
    советую http://www.delphikingdom.com/asp/viewitem.asp?catalogid=802
  • Германн © (10.11.08 03:50) [2]

    > Верно ли это? [D6, XP]
    >
    > Abcdef123   (10.11.08 03:32)
    >
    > Программер, которому я не особо доверяю, сделал замечание,
    >  что согласно ООП надо вместо паблик переменных использовать
    > паблик свойство. Верно ли это, если да, то почему?
    > И второе, я назвала паблик переменную _DefKeyField, он сказал,
    >  чтоб я убрала первый знак из названия, то есть "_". Существенно
    > ли это? Если да, то почему?
    >

    И то и другое  не верно в общем случае.
  • Rouse_ © (10.11.08 10:55) [3]
    Скажем так, на исполнение программы в общем случае это не повлияет, но программер, которому ты "не особо доверяешь" прав. :)
  • Palladin © (10.11.08 11:02) [4]
    Попроси аргументировать и начни доверять :)
  • Поросенок Винни-Пух © (10.11.08 11:08) [5]
    да чувак просто жениться на ней не хочет.
  • Anatoly Podgoretsky © (10.11.08 11:14) [6]

    > > что согласно ООП надо вместо паблик переменных использовать
    >
    > > паблик свойство
    >
    > да, только с поправочкой - в ООП, принятом в Делфи.

    Ну если свойств нет, то надо работать через функции и процедуры - вот это будет уже по канонам. Не должно быть прямого доступа до полей класса.
  • Поросенок Винни-Пух © (10.11.08 11:23) [7]
    интересно, а ссылку на единственный на процесс экземпляр класса с полем вместо глобальной переменной в какой переменной хранить?
  • Anatoly Podgoretsky © (10.11.08 11:26) [8]
    Поросенок Винни-Пух ©   (10.11.08 11:23) [7]
    Это уже не имеет отношения к ООП, ООП начинается там, где кончается ссылка.
    Но правила хранения общии, не выше необходимой видимости.
  • DVM © (10.11.08 11:30) [9]

    > интересно, а ссылку на единственный на процесс экземпляр
    > класса с полем вместо глобальной переменной в какой переменной
    > хранить?

    Можно выкрутиться. Без глобальных переменных можно обойтись. Вон в Java их вообще нет и ничего.
  • Поросенок Винни-Пух © (10.11.08 11:30) [10]
    Программер, которому я не особо доверяю, сделал замечание, что согласно ООП надо вместо паблик переменных использовать паблик свойство. Верно ли это, если да, то почему?

    Это неверно.
  • Поросенок Винни-Пух © (10.11.08 11:31) [11]
    Вон в Java их вообще нет и ничего.

    Это в сидиезе их по настоящему нет и любая запятая это член класса.
    А ява - это так. Полумеры.
  • KSergey © (10.11.08 11:44) [12]
    > Поросенок Винни-Пух ©   (10.11.08 11:31) [11]
    > Это в сидиезе их по настоящему нет и любая запятая это член класса.

    По-моему, это все в угоду эстетам, т.к. все равно системой обязательно создается некий глобальный экземпляр класса, поля которого ничем не лучше (и не хуже!) глобальнх переменных.
    А потому я лично не понимаю зачем тень на плетень наводить.
  • Поросенок Винни-Пух © (10.11.08 11:50) [13]
    во во.
    Сначала говорят, будем святы и чисты и не будет у нас переменных. Изобретают чисто ооп язык.
    а потом все заканчивается этим

    public static class Globals {
    ...
    }

    :)
  • Vlad Oshin © (10.11.08 12:38) [14]

    > вместо паблик переменных использовать паблик свойство. Верно
    > ли это, если да, то почему?

    Св-во можно менять с помощью метода +

    > Ну если свойств нет, то надо работать через функции и процедуры
    > - вот это будет уже по канонам. Не должно быть прямого доступа
    > до полей класса.


    Ну мало ли чего туда по ошибке запишут? А св-во автоматически вызовет метод(если он описан) для своего изменения, в котором можно проверять корректность значения.
  • Поросенок Винни-Пух © (10.11.08 12:47) [15]
    ... и при всем при этом почему-то decimal separator - это не поле с методом по записи.
  • Поросенок Винни-Пух © (10.11.08 12:51) [16]
    А св-во автоматически вызовет метод(если он описан) для своего изменения, в котором можно проверять корректность значения.

    То есть, я пишу приложение. В нем есть нечто глобальное.
    И это нечто глобальное можно испортить неправильным значением.
    И я создаю класс с полем и методом по записи, для того, что бы опять же я не испортил бы глобальное неправильным значением, путем проверки значения в методе, который написал я.
  • Юрий Зотов © (10.11.08 13:09) [17]
    > Поросенок Винни-Пух ©   (10.11.08 12:51) [16]

    Не обязательно "я". Это может быть коллега, который не в курсе тонкостей. Так что защита не помешает.
  • AndreyV © (10.11.08 13:11) [18]
    > [16] Поросенок Винни-Пух ©   (10.11.08 12:51)
    > И я создаю класс с полем и методом по записи, для того,
    > что бы опять же я не испортил бы глобальное неправильным
    > значением, путем проверки значения в методе, который написал
    > я.

    Ну да. Проверка в одном месте, присваивание во многих.
  • Anatoly Podgoretsky © (10.11.08 14:23) [19]
    > Vlad Oshin  (10.11.2008 12:38:14)  [14]

    Свойства для того и придумали, что бы скрыть методы доступа и кой что еще. Что бы это выглядело как переменная. В тех языках, где нет свойств это делается явно через функции, а само поле все равно скрыто в private.
 
Конференция "Прочее" » Верно ли это? [D6, XP]
Есть новые Нет новых   [134446   +31][b:0][p:0.001]