Class Variables vs Class-Instance Variables

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
11 messages Options
Reply | Threaded
Open this post in threaded view
|

Class Variables vs Class-Instance Variables

Yuriy Mironenko
Кто-нибудь может мне наглядно и понятно объяснить, в чём между ними разница?

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу "Russian Smalltalk User Group".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес [hidden email].
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Class Variables vs Class-Instance Variables

Nikolay Kleptsov
instanceVariableNames на стороне класса видны только из класса, classVariableNames видны всем экземплярам так на стороне класса

4 января 2015 г., 15:40 пользователь Yuriy Mironenko [via Smalltalk] <[hidden email]> написал:
Кто-нибудь может мне наглядно и понятно объяснить, в чём между ними разница?

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу "Russian Smalltalk User Group".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес [hidden email].
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.



If you reply to this email, your message will be added to the discussion below:
http://forum.world.st/Class-Variables-vs-Class-Instance-Variables-tp4797708.html
To start a new topic under русский язык (Russian), email [hidden email]
To unsubscribe from Smalltalk, click here.
NAML

Reply | Threaded
Open this post in threaded view
|

Re: Class Variables vs Class-Instance Variables

Dennis Schetinin
In reply to this post by Yuriy Mironenko
Class Instance Variable — обычная переменная экземпляра, но в объектах, представляющих класс (и определенная в метаклассе).

Class Variable — глобальная переменная, соотнесенная с классом и время жизни которой совпадает с временем жизни класса.

Соответственно: первая — будет своя в каждом классе; вторая — будет одна на все классы в иерархии.

Вторая — похожа на static в Java, а первых там просто нет (поскольку классы — не объекты). При этом вторые при нормальном дизайне почти никогда не нужны.

Если не ошибаюсь, в PBE были подробно описаны и те, и другие и вообще все, даже с картинками.




--

Best regards,


Dennis Schetinin


4 января 2015 г., 13:41 пользователь Юрий Мироненко <[hidden email]> написал:
Кто-нибудь может мне наглядно и понятно объяснить, в чём между ними разница?

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу "Russian Smalltalk User Group".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес [hidden email].
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу "Russian Smalltalk User Group".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес [hidden email].
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Class Variables vs Class-Instance Variables

Genosse
У меня со вторыми тоже постоянные сложности (точнее с некоторыми конструкциями)... :(

Пока стараюсь их игнорировать... Но очень хотелось бы узнать от сведущих людей примеры когда без них не обойтись (именно не то что "удобнее использовать", а "не обойтись"). Ведь наверное есть такие примеры?

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу "Russian Smalltalk User Group".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес [hidden email].
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Class Variables vs Class-Instance Variables

Dennis Schetinin
Я таких ситуаций в данный момент вспомнить/придумать не могу. И не припомню, чтобы когда-либо что-то поколебало мою уверенность в том, что глобальный объект это плохо.

Впрочем, в том же PBE есть какие-то примеры, если не ошибаюсь.


--

Best regards,


Dennis Schetinin


5 января 2015 г., 0:12 пользователь Ремизов Александр <[hidden email]> написал:
У меня со вторыми тоже постоянные сложности (точнее с некоторыми конструкциями)... :(

Пока стараюсь их игнорировать... Но очень хотелось бы узнать от сведущих людей примеры когда без них не обойтись (именно не то что "удобнее использовать", а "не обойтись"). Ведь наверное есть такие примеры?

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу "Russian Smalltalk User Group".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес [hidden email].
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу "Russian Smalltalk User Group".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес [hidden email].
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Class Variables vs Class-Instance Variables

Nikolay Kleptsov
In reply to this post by Yuriy Mironenko
В class variables и class instance variables удобно хранить структурообразующие объекты или точки входа. В Seaside пошли дальше и используют имя класса. Корневые объекты неудобно хранить в workspace, а переменные класса как раз.

4 января 2015 г., 15:41 пользователь Юрий Мироненко <[hidden email]> написал:
Кто-нибудь может мне наглядно и понятно объяснить, в чём между ними разница?

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу "Russian Smalltalk User Group".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес [hidden email].
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу "Russian Smalltalk User Group".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес [hidden email].
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Class Variables vs Class-Instance Variables

Yuriy Mironenko
In reply to this post by Nikolay Kleptsov
> classVariableNames видны всем экземплярам так на стороне класса

не совсем понял, что имеется в виду. Вероятно, там где-то опечатка, но я не понял, где.

4 января 2015 г., 12:56 пользователь Nikolay Kleptsov <[hidden email]> написал:
instanceVariableNames на стороне класса видны только из класса, classVariableNames видны всем экземплярам так на стороне класса

4 января 2015 г., 15:40 пользователь Yuriy Mironenko [via Smalltalk] <[hidden email]> написал:
Кто-нибудь может мне наглядно и понятно объяснить, в чём между ними разница?

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу "Russian Smalltalk User Group".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес [hidden email].
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.



If you reply to this email, your message will be added to the discussion below:
http://forum.world.st/Class-Variables-vs-Class-Instance-Variables-tp4797708.html
To start a new topic under русский язык (Russian), email [hidden email]
To unsubscribe from Smalltalk, click here.
NAML



View this message in context: Re: Class Variables vs Class-Instance Variables
Sent from the русский язык (Russian) mailing list archive at Nabble.com.

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу "Russian Smalltalk User Group".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес [hidden email].
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу "Russian Smalltalk User Group".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес [hidden email].
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Class Variables vs Class-Instance Variables

Nikolay Kleptsov
classVariableNames подобны статическим переменным в java, только видны всем экземплярам класса и подкласса. Если в одном экземпляре значение будет изменено, то все экземпляры класса увидят это.

6 января 2015 г., 21:07 пользователь Юрий Мироненко <[hidden email]> написал:
> classVariableNames видны всем экземплярам так на стороне класса

не совсем понял, что имеется в виду. Вероятно, там где-то опечатка, но я не понял, где.

4 января 2015 г., 12:56 пользователь Nikolay Kleptsov <[hidden email]> написал:
instanceVariableNames на стороне класса видны только из класса, classVariableNames видны всем экземплярам так на стороне класса

4 января 2015 г., 15:40 пользователь Yuriy Mironenko [via Smalltalk] <[hidden email]> написал:
Кто-нибудь может мне наглядно и понятно объяснить, в чём между ними разница?

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу "Russian Smalltalk User Group".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес [hidden email].
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.



If you reply to this email, your message will be added to the discussion below:
http://forum.world.st/Class-Variables-vs-Class-Instance-Variables-tp4797708.html
To start a new topic under русский язык (Russian), email [hidden email]
To unsubscribe from Smalltalk, click here.
NAML



View this message in context: Re: Class Variables vs Class-Instance Variables
Sent from the русский язык (Russian) mailing list archive at Nabble.com.

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу "Russian Smalltalk User Group".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес [hidden email].
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу "Russian Smalltalk User Group".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес [hidden email].

Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу "Russian Smalltalk User Group".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес [hidden email].
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Class Variables vs Class-Instance Variables

Yuriy Mironenko
Ну, насколько я понимаю, доступа ни к class variables, ни к class instance variables из экземпляра класса нету - только через аксессоры класса. А через аксессоры равно доступны и те и другие - разница тольк, как я понял, в наследовании.

6 января 2015 г., 19:15 пользователь Nikolay Kleptsov <[hidden email]> написал:
classVariableNames подобны статическим переменным в java, только видны всем экземплярам класса и подкласса. Если в одном экземпляре значение будет изменено, то все экземпляры класса увидят это.

6 января 2015 г., 21:07 пользователь Юрий Мироненко <[hidden email]> написал:

> classVariableNames видны всем экземплярам так на стороне класса

не совсем понял, что имеется в виду. Вероятно, там где-то опечатка, но я не понял, где.

4 января 2015 г., 12:56 пользователь Nikolay Kleptsov <[hidden email]> написал:
instanceVariableNames на стороне класса видны только из класса, classVariableNames видны всем экземплярам так на стороне класса

4 января 2015 г., 15:40 пользователь Yuriy Mironenko [via Smalltalk] <[hidden email]> написал:
Кто-нибудь может мне наглядно и понятно объяснить, в чём между ними разница?

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу "Russian Smalltalk User Group".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес [hidden email].
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.



If you reply to this email, your message will be added to the discussion below:
http://forum.world.st/Class-Variables-vs-Class-Instance-Variables-tp4797708.html
To start a new topic under русский язык (Russian), email [hidden email]
To unsubscribe from Smalltalk, click here.
NAML



View this message in context: Re: Class Variables vs Class-Instance Variables
Sent from the русский язык (Russian) mailing list archive at Nabble.com.

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу "Russian Smalltalk User Group".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес [hidden email].
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу "Russian Smalltalk User Group".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес [hidden email].

Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу "Russian Smalltalk User Group".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес [hidden email].
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу "Russian Smalltalk User Group".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес [hidden email].
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Class Variables vs Class-Instance Variables

Nikolay Kleptsov
В Pharo класс Color использует много констант которые определены как classVariableNames. В браузере можно посмотреть где и как они используются без аксессоров.

6 января 2015 г., 22:29 пользователь Юрий Мироненко <[hidden email]> написал:
Ну, насколько я понимаю, доступа ни к class variables, ни к class instance variables из экземпляра класса нету - только через аксессоры класса. А через аксессоры равно доступны и те и другие - разница тольк, как я понял, в наследовании.

6 января 2015 г., 19:15 пользователь Nikolay Kleptsov <[hidden email]> написал:

classVariableNames подобны статическим переменным в java, только видны всем экземплярам класса и подкласса. Если в одном экземпляре значение будет изменено, то все экземпляры класса увидят это.

6 января 2015 г., 21:07 пользователь Юрий Мироненко <[hidden email]> написал:

> classVariableNames видны всем экземплярам так на стороне класса

не совсем понял, что имеется в виду. Вероятно, там где-то опечатка, но я не понял, где.

4 января 2015 г., 12:56 пользователь Nikolay Kleptsov <[hidden email]> написал:
instanceVariableNames на стороне класса видны только из класса, classVariableNames видны всем экземплярам так на стороне класса

4 января 2015 г., 15:40 пользователь Yuriy Mironenko [via Smalltalk] <[hidden email]> написал:
Кто-нибудь может мне наглядно и понятно объяснить, в чём между ними разница?

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу "Russian Smalltalk User Group".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес [hidden email].
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.



If you reply to this email, your message will be added to the discussion below:
http://forum.world.st/Class-Variables-vs-Class-Instance-Variables-tp4797708.html
To start a new topic under русский язык (Russian), email [hidden email]
To unsubscribe from Smalltalk, click here.
NAML



View this message in context: Re: Class Variables vs Class-Instance Variables
Sent from the русский язык (Russian) mailing list archive at Nabble.com.

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу "Russian Smalltalk User Group".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес [hidden email].
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу "Russian Smalltalk User Group".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес [hidden email].

Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу "Russian Smalltalk User Group".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес [hidden email].
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу "Russian Smalltalk User Group".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес [hidden email].
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу "Russian Smalltalk User Group".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес [hidden email].
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Class Variables vs Class-Instance Variables

Yuriy Mironenko
Хм, вот интересно.
Спасибо.
Я был настолько уверен, что так нельзя, что даже никогда и не пробовал - всегда лепил аксессоры.

6 января 2015 г., 19:34 пользователь Nikolay Kleptsov <[hidden email]> написал:
В Pharo класс Color использует много констант которые определены как classVariableNames. В браузере можно посмотреть где и как они используются без аксессоров.

6 января 2015 г., 22:29 пользователь Юрий Мироненко <[hidden email]> написал:

Ну, насколько я понимаю, доступа ни к class variables, ни к class instance variables из экземпляра класса нету - только через аксессоры класса. А через аксессоры равно доступны и те и другие - разница тольк, как я понял, в наследовании.

6 января 2015 г., 19:15 пользователь Nikolay Kleptsov <[hidden email]> написал:

classVariableNames подобны статическим переменным в java, только видны всем экземплярам класса и подкласса. Если в одном экземпляре значение будет изменено, то все экземпляры класса увидят это.

6 января 2015 г., 21:07 пользователь Юрий Мироненко <[hidden email]> написал:

> classVariableNames видны всем экземплярам так на стороне класса

не совсем понял, что имеется в виду. Вероятно, там где-то опечатка, но я не понял, где.

4 января 2015 г., 12:56 пользователь Nikolay Kleptsov <[hidden email]> написал:
instanceVariableNames на стороне класса видны только из класса, classVariableNames видны всем экземплярам так на стороне класса

4 января 2015 г., 15:40 пользователь Yuriy Mironenko [via Smalltalk] <[hidden email]> написал:
Кто-нибудь может мне наглядно и понятно объяснить, в чём между ними разница?

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу "Russian Smalltalk User Group".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес [hidden email].
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.



If you reply to this email, your message will be added to the discussion below:
http://forum.world.st/Class-Variables-vs-Class-Instance-Variables-tp4797708.html
To start a new topic under русский язык (Russian), email [hidden email]
To unsubscribe from Smalltalk, click here.
NAML



View this message in context: Re: Class Variables vs Class-Instance Variables
Sent from the русский язык (Russian) mailing list archive at Nabble.com.

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу "Russian Smalltalk User Group".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес [hidden email].
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу "Russian Smalltalk User Group".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес [hidden email].

Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу "Russian Smalltalk User Group".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес [hidden email].
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу "Russian Smalltalk User Group".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес [hidden email].
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу "Russian Smalltalk User Group".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес [hidden email].
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.

--
--
http://groups.google.ru/group/sugr
---
Вы получили это сообщение, поскольку подписаны на группу "Russian Smalltalk User Group".
Чтобы отменить подписку на эту группу и больше не получать от нее сообщения, отправьте письмо на электронный адрес [hidden email].
Чтобы настроить другие параметры, перейдите по ссылке https://groups.google.com/d/optout.