Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Переменные класса.
|
|||
|---|---|---|---|
|
#18+
Добрый день! Я озаботился созданием в Cache паттерна Singleton и был весьма огорчён, когда не смог сообразить как в классе описать статическую переменную класса. И еще грустно, что видимо нельзя сделать "конструктор" класса %New() private. Вроде методы класса есть а переменных класса нет. Как-то это все странно. Я чего-то не понимаю? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2008, 09:56 |
|
||
|
Переменные класса.
|
|||
|---|---|---|---|
|
#18+
Как вариант есть параметры класса... Там правда свои особенности есть... ---------- Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2008, 10:07 |
|
||
|
Переменные класса.
|
|||
|---|---|---|---|
|
#18+
Чем статическая переменная класса отличается от локальной или глобальной переменной? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2008, 10:23 |
|
||
|
Переменные класса.
|
|||
|---|---|---|---|
|
#18+
Какминимум синтаксисом при обращении к ней. Да и обращение к произвольному глобалу (тем паче к локальной переменной) из вне сильно отличается от работы с классами. ---------- Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2008, 10:37 |
|
||
|
Переменные класса.
|
|||
|---|---|---|---|
|
#18+
В принципе, можно сделать обычную функцию класса, которая проверяет существование переменной и ее инициализацию, и если не ага, то сделает и ее вернет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2008, 10:45 |
|
||
|
Переменные класса.
|
|||
|---|---|---|---|
|
#18+
Автору... Как вариант сделать вот такой метод класса Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2008, 10:53 |
|
||
|
Переменные класса.
|
|||
|---|---|---|---|
|
#18+
Как вариант можете сделать так: Class TEST.Singleton Extends %RegisteredObject { ClassMethod getInstance() As %RegisteredObject { s obj = $G(%singleton(..%ClassName(1))) if obj{ q $zobjref(obj) } s instance = ##class(TEST.Singleton).%New() s %singleton(..%ClassName(1)) = +instance q instance } } это работает ТОЛЬКО в рамках ОДНОГО процесса ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2008, 10:55 |
|
||
|
Переменные класса.
|
|||
|---|---|---|---|
|
#18+
=Dimon=Как вариант можете сделать так: Class TEST.Singleton Extends %RegisteredObject { ClassMethod getInstance() As %RegisteredObject { s obj = $G(%singleton(..%ClassName(1))) if obj{ q $zobjref(obj) } s instance = ##class(TEST.Singleton).%New() s %singleton(..%ClassName(1)) = +instance q instance } } это работает ТОЛЬКО в рамках ОДНОГО процесса +1 И такая задача - работать в рамках одного процесса! Очень похоже на правду. Попробую так. Правда запретить сделать извне s my_signleton = ##class(TEST.Singleton).%New() похоже не выйдет. Ну не страшно. На уровне конвенций можно работать. Спасибо!!! Спасибо всем откликнувшимся! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2008, 11:58 |
|
||
|
Переменные класса.
|
|||
|---|---|---|---|
|
#18+
krvsaКак вариант есть параметры класса... Там правда свои особенности есть... ---------- Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT К сожалению это константы ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2008, 11:58 |
|
||
|
Переменные класса.
|
|||
|---|---|---|---|
|
#18+
ну яВ принципе, можно сделать обычную функцию класса, которая проверяет существование переменной и ее инициализацию, и если не ага, то сделает и ее вернет. Хотелось-бы чтобы эта переменная была доступна только из этого-же класса. Т.е. была private. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2008, 14:14 |
|
||
|
|

start [/forum/topic.php?fid=39&msg=35408896&tid=1558840]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
65ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 230ms |
| total: | 380ms |

| 0 / 0 |
