Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Закрытие полей в классах - в чем удобство?

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Веб-программинг] >> Закрытие полей в классах - в чем удобство?
Имя
Сообщение << Старые топики   Новые топики >>
Закрытие полей в классах - в чем удобство? - 2005-09-13 22:39:33   
Grunge

Сообщений: 1
Оценки: 0
Присоединился: 2005-09-13 22:23:21
Вопросо такой: почему рекомендуется делать поля private даже если в программе только один класс и работает только один разработчик?
Собственно в чем удобство?
Post #: 1
Закрытие полей в классах - в чем удобство? - 2005-09-13 22:49:02   
Great

Сообщений: 1046
Оценки: 0
Присоединился: 2005-08-11 19:41:36
поскольку язык не указан, буду считать С++. Итак, это удобно, .т.к. мы абстрагируем работу с полем от программы. Т.е. допустим, есть два варианта:
class one
{
private:
int var;
public:
one(int _v){var=_v;}
int GetVar(){return var;}
};

class other
{
public:
int var;
};

Если допустим мы случайно напишем
one obj;
other obj2;
obj2.var=0;
то изменится значемние переменной - а мы не хотели (допустим, просто очепятка)
В случае obj.GetVar() компилер нам просто запретит
Post #: 2
Закрытие полей в классах - в чем удобство? - 2005-09-15 13:44:37   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
я думаю тут две причины:
1. ООП сдвиг в головах авторов таких заявлений (крайне сложно лечится)
2. ибо нефик. чтобы когда тебе приспичит отслеживать каждое обращение к этой переменной (например, потому, что программа оказалась на порядок сложнее чем казалась в начале), не пришлось искать по всей программе, где же эти обращения происходят.

а вообще нужно опыта до фига, чтобы предсказывать какую переменную можно оставить public, чтобы не писать методы set_var и get_var, а какую сделать private. И тут напрашиваеться третья причина, таких заявлений:
3) пока опыта нету, пиши private
Post #: 3
Закрытие полей в классах - в чем удобство? - 2005-09-16 08:32:40   
Kill_em_all

Сообщений: 395
Оценки: 0
Присоединился: 2005-03-25 22:40:01
И то верно! Чтоб ты сам не напортачил с написанием
какой-либо функции и случайно не изменил значение
переменной когда не надо и не ломал бы себе голову
при отладке и тестировании проги.

А вообще приказы не обсуждаются:))Просто возьми себе
за правило ставить в приват все переменные-мемберы класса
Post #: 4
Страниц:  [1]
Все форумы >> [Веб-программинг] >> Закрытие полей в классах - в чем удобство?







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.