|
|
|
Ошибка имплементирования Синглтона или непонимание механизма?
|
|||
|---|---|---|---|
|
#18+
в этом топике: http://]http://sql.ru/forum/actualthread.aspx?tid=318241 я упоминал о моей проблеме. Я использую Синглтон класс и выяснил, что он работает не так, как я ожидал. Вот сокращ. мой класс: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. Код: plaintext проблема заключается в том, что метод update() не срабатывает, тогда когда мне нужно, из за того, что условие Код: plaintext Я выяснил что при любом вызове метода Код: plaintext Для того чтобы решить проблему я изменил код таким образом, чтобы обращаться к этому аттрибуту через instance. И теперь в классе Фактори, везде использую такое обращение: Код: plaintext 1. 2. 3. ВОПРОС: почему так происходит? Разве каждый раз при вызове статического метода класса Код: plaintext Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2006, 20:09 |
|
||
|
Ошибка имплементирования Синглтона или непонимание механизма?
|
|||
|---|---|---|---|
|
#18+
в описании вопроса и в коде есть некоторые неточности: предложение "проблема заключается в том,...что условие if (goalsMoverView1 == null) не выполняется" следует читать таким образом: "проблема заключается в том, что условие почти всегда выполняется (т.к. аттрибут сбрасывается на нуль) и соответственно вызов метода апдейт не происходит." Также в описании используются иногда разные названия аттрибута: иногда goalsMoverView1 иногда MoverView1. На самом деле, речь идет об одном и том же аттрибуте (просто пытаясь упростить код, был недостаточно внимателен) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.07.2006, 20:21 |
|
||
|
Ошибка имплементирования Синглтона или непонимание механизма?
|
|||
|---|---|---|---|
|
#18+
Первая мысль: может быть проблемы из-за отсутствия синхронизации? ====================== - Я подхожу к клетке с медведем панда... Видите, какие у него черные круги под глазами?! Медведь панда как бы всем своим видом говорит нам: "Не бухайте!" ====================== ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2006, 07:58 |
|
||
|
Ошибка имплементирования Синглтона или непонимание механизма?
|
|||
|---|---|---|---|
|
#18+
А, понял! Это ж у тебя не синглтон! В синглтоне инстанс объявляется статическим. А ты здесь создаешь по экземпляру класса на каждый поток. Вот это должно помочь: private static ViewsFactory instance = null; ====================== - Я подхожу к клетке с медведем панда... Видите, какие у него черные круги под глазами?! Медведь панда как бы всем своим видом говорит нам: "Не бухайте!" ====================== ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2006, 08:02 |
|
||
|
Ошибка имплементирования Синглтона или непонимание механизма?
|
|||
|---|---|---|---|
|
#18+
Кувалдин РоманА, понял! Это ж у тебя не синглтон! В синглтоне инстанс объявляется статическим. А ты здесь создаешь по экземпляру класса на каждый поток. Вот это должно помочь: private static ViewsFactory instance = null; у меня на самом деле инстанс и определена статически, т.е. так: Код: plaintext так что вопрос остается открытым. А про какие потоки и синхронизацию ты говоришь? У меня в общем нету потоков паралельных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2006, 14:17 |
|
||
|
Ошибка имплементирования Синглтона или непонимание механизма?
|
|||
|---|---|---|---|
|
#18+
Кажется мне проще будет взять какой нибудь мануал и переписать Синглтон... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2006, 14:22 |
|
||
|
Ошибка имплементирования Синглтона или непонимание механизма?
|
|||
|---|---|---|---|
|
#18+
Описание синглтона на примере коннекш пула http://lib.juga.ru/article/articleview/162/1/68/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.07.2006, 14:27 |
|
||
|
Ошибка имплементирования Синглтона или непонимание механизма?
|
|||
|---|---|---|---|
|
#18+
так в чем моя ошибка-то? В примере не вижу ничего такого, чтобы пояснило проблему ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.07.2006, 21:14 |
|
||
|
Ошибка имплементирования Синглтона или непонимание механизма?
|
|||
|---|---|---|---|
|
#18+
Neulingтак в чем моя ошибка-то? В примере не вижу ничего такого, чтобы пояснило проблему Выложи-ка сюда исходники. Собственно, класс, и запускалку к нему, где видно, что у тебя не работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2006, 13:06 |
|
||
|
Ошибка имплементирования Синглтона или непонимание механизма?
|
|||
|---|---|---|---|
|
#18+
код класса уже выложен (полностью нет смысла, т.к. там много других аттрибутов и методов, которые к проблеме не имеют отношения). Проблема тоже указана, вот еще раз выдержка: Код: plaintext 1. 2. 3. 4. 5. По моим наблюдениям, аттрибут moverView1 устанавливается всегда в нуль, если один из посторонних классов вызывает метод ViewsFactory.getInstance(), что на МОЙ взгляд не должно происходить, так как метод статический и на сколько я знаю, реинициализации аттрибутов не должно происходить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2006, 14:22 |
|
||
|
Ошибка имплементирования Синглтона или непонимание механизма?
|
|||
|---|---|---|---|
|
#18+
Neulingкод класса уже выложен (полностью нет смысла, т.к. там много других аттрибутов и методов, которые к проблеме не имеют отношения). Проблема тоже указана, вот еще раз выдержка: Код: plaintext 1. 2. 3. 4. 5. По моим наблюдениям, аттрибут moverView1 устанавливается всегда в нуль, если один из посторонних классов вызывает метод ViewsFactory.getInstance(), что на МОЙ взгляд не должно происходить, так как метод статический и на сколько я знаю, реинициализации аттрибутов не должно происходить. рузскей езык панимаеш? тест кейс давай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2006, 14:39 |
|
||
|
Ошибка имплементирования Синглтона или непонимание механизма?
|
|||
|---|---|---|---|
|
#18+
NeulingПо моим наблюдениям, аттрибут moverView1 устанавливается всегда в нуль, если один из посторонних классов вызывает метод ViewsFactory.getInstance(), что на МОЙ взгляд не должно происходить, так как метод статический и на сколько я знаю, реинициализации аттрибутов не должно происходить. Это с чего бы не должно происходить вызовов? П.С. У меня синглтоны работают. А вот какой косяк в столь тщательно охраняемом тобой коде - я не знаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2006, 19:42 |
|
||
|
Ошибка имплементирования Синглтона или непонимание механизма?
|
|||
|---|---|---|---|
|
#18+
Кувалдин Роман NeulingПо моим наблюдениям, аттрибут moverView1 устанавливается всегда в нуль, если один из посторонних классов вызывает метод ViewsFactory.getInstance(), что на МОЙ взгляд не должно происходить, так как метод статический и на сколько я знаю, реинициализации аттрибутов не должно происходить. Это с чего бы не должно происходить вызовов? П.С. У меня синглтоны работают. А вот какой косяк в столь тщательно охраняемом тобой коде - я не знаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2006, 17:42 |
|
||
|
Ошибка имплементирования Синглтона или непонимание механизма?
|
|||
|---|---|---|---|
|
#18+
предыдущее сообщение-не читать(сбой при отправке) Кувалдин РоманЭто с чего бы не должно происходить вызовов? так я и не говорю, что не должно. Я спрашиваю, почему происходит реинициализация аттрибута при вызове статического метода? Кувалдин Роман П.С. У меня синглтоны работают. А вот какой косяк в столь тщательно охраняемом тобой коде - я не знаю. я не охраняю свой код. Что нужно выложить-то еще, не пойму? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2006, 19:48 |
|
||
|
Ошибка имплементирования Синглтона или непонимание механизма?
|
|||
|---|---|---|---|
|
#18+
Все. Сначала у тебя: Код: plaintext Код: plaintext Затем: авторТакже в описании используются иногда разные названия аттрибута: иногда goalsMoverView1 иногда MoverView1 . На самом деле, речь идет об одном и том же аттрибуте (просто пытаясь упростить код, был недостаточно внимателен) посему, чтобы не тратить время на выяснение, где ты еще накосячил - давай полный код и тест-кейс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2006, 00:55 |
|
||
|
Ошибка имплементирования Синглтона или непонимание механизма?
|
|||
|---|---|---|---|
|
#18+
что такое тест-кейс? запускающая программка, которая приводит к ошибке? Если да, то нужно еще сообразить. К сож., времени сегодня уже нет. Постараюсь что-нибудь придумать. Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2006, 00:33 |
|
||
|
Ошибка имплементирования Синглтона или непонимание механизма?
|
|||
|---|---|---|---|
|
#18+
Neulingчто такое тест-кейс? запускающая программка, которая приводит к ошибке? Ну вообще TestCase - это один из классов фреймворка JUnit. Но я имел в виду некий код, который показывает ошибку ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.08.2006, 18:37 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=708&tid=2148515]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
59ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 233ms |
| total: | 360ms |

| 0 / 0 |
