-
Программер, которому я не особо доверяю, сделал замечание, что согласно ООП надо вместо паблик переменных использовать паблик свойство. Верно ли это, если да, то почему? И второе, я назвала паблик переменную _DefKeyField, он сказал, чтоб я убрала первый знак из названия, то есть "_". Существенно ли это? Если да, то почему? Извините, может я не по теме данного форума, но это ж вопрос для начинающих. Спасибо заранее! Надя
-
> [0] Abcdef123 (10.11.08 03:32)
> что согласно ООП надо вместо паблик переменных использовать > паблик свойство
да, только с поправочкой - в ООП, принятом в Делфи. > И второе, я назвала паблик переменную _DefKeyField, он сказал, > чтоб я убрала первый знак из названия, то есть "_". Существенно > ли это?
правильно сказал. в Делфи это противоречит основным стандартам. советую http://www.delphikingdom.com/asp/viewitem.asp?catalogid=802
-
> Верно ли это? [D6, XP] > > Abcdef123 (10.11.08 03:32) > > Программер, которому я не особо доверяю, сделал замечание, > что согласно ООП надо вместо паблик переменных использовать > паблик свойство. Верно ли это, если да, то почему? > И второе, я назвала паблик переменную _DefKeyField, он сказал, > чтоб я убрала первый знак из названия, то есть "_". Существенно > ли это? Если да, то почему? >
И то и другое не верно в общем случае.
-
Скажем так, на исполнение программы в общем случае это не повлияет, но программер, которому ты "не особо доверяешь" прав. :)
-
Попроси аргументировать и начни доверять :)
-
да чувак просто жениться на ней не хочет.
-
> > что согласно ООП надо вместо паблик переменных использовать > > > паблик свойство > > да, только с поправочкой - в ООП, принятом в Делфи.
Ну если свойств нет, то надо работать через функции и процедуры - вот это будет уже по канонам. Не должно быть прямого доступа до полей класса.
-
интересно, а ссылку на единственный на процесс экземпляр класса с полем вместо глобальной переменной в какой переменной хранить?
-
Поросенок Винни-Пух © (10.11.08 11:23) [7] Это уже не имеет отношения к ООП, ООП начинается там, где кончается ссылка. Но правила хранения общии, не выше необходимой видимости.
-
> интересно, а ссылку на единственный на процесс экземпляр > класса с полем вместо глобальной переменной в какой переменной > хранить?
Можно выкрутиться. Без глобальных переменных можно обойтись. Вон в Java их вообще нет и ничего.
-
Программер, которому я не особо доверяю, сделал замечание, что согласно ООП надо вместо паблик переменных использовать паблик свойство. Верно ли это, если да, то почему?
Это неверно.
-
Вон в Java их вообще нет и ничего.
Это в сидиезе их по настоящему нет и любая запятая это член класса. А ява - это так. Полумеры.
-
> Поросенок Винни-Пух © (10.11.08 11:31) [11] > Это в сидиезе их по настоящему нет и любая запятая это член класса.
По-моему, это все в угоду эстетам, т.к. все равно системой обязательно создается некий глобальный экземпляр класса, поля которого ничем не лучше (и не хуже!) глобальнх переменных. А потому я лично не понимаю зачем тень на плетень наводить.
-
во во. Сначала говорят, будем святы и чисты и не будет у нас переменных. Изобретают чисто ооп язык. а потом все заканчивается этим
public static class Globals { ... }
:)
-
> вместо паблик переменных использовать паблик свойство. Верно > ли это, если да, то почему?
Св-во можно менять с помощью метода +
> Ну если свойств нет, то надо работать через функции и процедуры > - вот это будет уже по канонам. Не должно быть прямого доступа > до полей класса.
Ну мало ли чего туда по ошибке запишут? А св-во автоматически вызовет метод(если он описан) для своего изменения, в котором можно проверять корректность значения.
-
... и при всем при этом почему-то decimal separator - это не поле с методом по записи.
-
А св-во автоматически вызовет метод(если он описан) для своего изменения, в котором можно проверять корректность значения.
То есть, я пишу приложение. В нем есть нечто глобальное. И это нечто глобальное можно испортить неправильным значением. И я создаю класс с полем и методом по записи, для того, что бы опять же я не испортил бы глобальное неправильным значением, путем проверки значения в методе, который написал я.
-
> Поросенок Винни-Пух © (10.11.08 12:51) [16]
Не обязательно "я". Это может быть коллега, который не в курсе тонкостей. Так что защита не помешает.
-
> [16] Поросенок Винни-Пух © (10.11.08 12:51) > И я создаю класс с полем и методом по записи, для того, > что бы опять же я не испортил бы глобальное неправильным > значением, путем проверки значения в методе, который написал > я.
Ну да. Проверка в одном месте, присваивание во многих.
-
> Vlad Oshin (10.11.2008 12:38:14) [14]
Свойства для того и придумали, что бы скрыть методы доступа и кой что еще. Что бы это выглядело как переменная. В тех языках, где нет свойств это делается явно через функции, а само поле все равно скрыто в private.
|