<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.2.1" -->
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
	<title>Comments on: Паттерн Наблюдатель (Observer design pattern)</title>
	<link>http://www.javenue.info/post/76</link>
	<description>Блог разработчика о Java и родственных технологиях</description>
	<pubDate>Fri, 10 Sep 2010 06:04:27 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.2.1</generator>

	<item>
		<title>By: priam</title>
		<link>http://www.javenue.info/post/76#comment-67387</link>
		<author>priam</author>
		<pubDate>Tue, 16 Mar 2010 12:57:52 +0000</pubDate>
		<guid>http://www.javenue.info/post/76#comment-67387</guid>
		<description>в java.utils вроде бы есть класс Observable.</description>
		<content:encoded><![CDATA[<p>в java.utils вроде бы есть класс Observable.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: artemv</title>
		<link>http://www.javenue.info/post/76#comment-63847</link>
		<author>artemv</author>
		<pubDate>Sun, 17 Jan 2010 18:47:23 +0000</pubDate>
		<guid>http://www.javenue.info/post/76#comment-63847</guid>
		<description>@Ryadovoy

http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/CopyOnWriteArrayList.html</description>
		<content:encoded><![CDATA[<p>@Ryadovoy</p>
<p><a href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/CopyOnWriteArrayList.html" rel="nofollow">http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/CopyOnWriteArrayList.html</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ryadovoy</title>
		<link>http://www.javenue.info/post/76#comment-60216</link>
		<author>Ryadovoy</author>
		<pubDate>Fri, 02 Oct 2009 16:02:49 +0000</pubDate>
		<guid>http://www.javenue.info/post/76#comment-60216</guid>
		<description>Как насчет поддержки многопоточности и синхронизации списка нотифицируемых объектов?
Для воизбежания дедлоков нельзя вызывать нотификацию, залочив такой список...
Простей?ая реализация:
1) У каждого нотифицируемого объекта имеется счетчик ссылок, который при добавлении в список увеличивается а при удалении умень?ается;
2) Работа со списком контролируется каким-либо примитивом синхронизации;
3) При нотификации необходимо скопировать список под локом, при этом увеличив всем объектам счетчики ссылок (удобней всего использовать список аутопоинтеров, по типу ATL::CComPtr), убрать лок и нотифицировать слу?ателей по копии списка, после чего умень?ить счетчики ссылок.</description>
		<content:encoded><![CDATA[<p>Как насчет поддержки многопоточности и синхронизации списка нотифицируемых объектов?<br />
Для воизбежания дедлоков нельзя вызывать нотификацию, залочив такой список&#8230;<br />
Простей?ая реализация:<br />
1) У каждого нотифицируемого объекта имеется счетчик ссылок, который при добавлении в список увеличивается а при удалении умень?ается;<br />
2) Работа со списком контролируется каким-либо примитивом синхронизации;<br />
3) При нотификации необходимо скопировать список под локом, при этом увеличив всем объектам счетчики ссылок (удобней всего использовать список аутопоинтеров, по типу ATL::CComPtr), убрать лок и нотифицировать слу?ателей по копии списка, после чего умень?ить счетчики ссылок.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alex</title>
		<link>http://www.javenue.info/post/76#comment-60159</link>
		<author>Alex</author>
		<pubDate>Wed, 30 Sep 2009 12:15:39 +0000</pubDate>
		<guid>http://www.javenue.info/post/76#comment-60159</guid>
		<description>Зачем такая сложная конструкция 

for (Iterator iter = (Iterator) iterator(); iter.hasNext();)
    iter.next().objectCreated();
}

Можно заменить на 

for(T observer: Observers.this){
  observer.objectCreated(obj);
}</description>
		<content:encoded><![CDATA[<p>Зачем такая сложная конструкция </p>
<p>for (Iterator iter = (Iterator) iterator(); iter.hasNext();)<br />
    iter.next().objectCreated();<br />
}</p>
<p>Можно заменить на </p>
<p>for(T observer: Observers.this){<br />
  observer.objectCreated(obj);<br />
}</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: marov</title>
		<link>http://www.javenue.info/post/76#comment-59687</link>
		<author>marov</author>
		<pubDate>Tue, 15 Sep 2009 09:40:45 +0000</pubDate>
		<guid>http://www.javenue.info/post/76#comment-59687</guid>
		<description>Циклы, использующие iterator, красивее выглядят через foreach.
П.С. После препроцессора получится то же самое, но выглядит красивее.</description>
		<content:encoded><![CDATA[<p>Циклы, использующие iterator, красивее выглядят через foreach.<br />
П.С. После препроцессора получится то же самое, но выглядит красивее.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: c0nst</title>
		<link>http://www.javenue.info/post/76#comment-48335</link>
		<author>c0nst</author>
		<pubDate>Tue, 24 Mar 2009 21:58:41 +0000</pubDate>
		<guid>http://www.javenue.info/post/76#comment-48335</guid>
		<description>Если я правильно понимаю, Вы используете некоторую библиотеку (например Swing) для построения GUI и переме?ивание слов должно осуществлятся в реальном времени после нажатия клави?. 
Если так, то нужно использовать Listener (это и есть observer), а точнее добавить listener полю вывода переме?анных слов, который будет слу?ать событие нажатия кнопки.</description>
		<content:encoded><![CDATA[<p>Если я правильно понимаю, Вы используете некоторую библиотеку (например Swing) для построения GUI и переме?ивание слов должно осуществлятся в реальном времени после нажатия клави?.<br />
Если так, то нужно использовать Listener (это и есть observer), а точнее добавить listener полю вывода переме?анных слов, который будет слу?ать событие нажатия кнопки.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sersh</title>
		<link>http://www.javenue.info/post/76#comment-48329</link>
		<author>Sersh</author>
		<pubDate>Tue, 24 Mar 2009 19:38:11 +0000</pubDate>
		<guid>http://www.javenue.info/post/76#comment-48329</guid>
		<description>Написанный кода выполняет следущую фукцию: мы вводим текст в око?ко ввода(используется класс генерации случайных чисел Random), и в око?ке вывода получаем измененный текст, то есть слова ме?аются. Вопрос: Возможно и разумно в этом случае использовать OBSERVER?</description>
		<content:encoded><![CDATA[<p>Написанный кода выполняет следущую фукцию: мы вводим текст в око?ко ввода(используется класс генерации случайных чисел Random), и в око?ке вывода получаем измененный текст, то есть слова ме?аются. Вопрос: Возможно и разумно в этом случае использовать OBSERVER?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: c0nst</title>
		<link>http://www.javenue.info/post/76#comment-37879</link>
		<author>c0nst</author>
		<pubDate>Mon, 22 Dec 2008 07:47:19 +0000</pubDate>
		<guid>http://www.javenue.info/post/76#comment-37879</guid>
		<description>Да, спасибо, исправил.</description>
		<content:encoded><![CDATA[<p>Да, спасибо, исправил.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alex</title>
		<link>http://www.javenue.info/post/76#comment-30647</link>
		<author>Alex</author>
		<pubDate>Sat, 08 Nov 2008 10:21:26 +0000</pubDate>
		<guid>http://www.javenue.info/post/76#comment-30647</guid>
		<description>У вас в коде возможно о?ибка в методе notifyObjectModified. Возможно нужно вызвать iter.next().objectModified() вместо iter.next().objectCreated()?</description>
		<content:encoded><![CDATA[<p>У вас в коде возможно о?ибка в методе notifyObjectModified. Возможно нужно вызвать iter.next().objectModified() вместо iter.next().objectCreated()?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: mex</title>
		<link>http://www.javenue.info/post/76#comment-25817</link>
		<author>mex</author>
		<pubDate>Fri, 08 Aug 2008 05:33:49 +0000</pubDate>
		<guid>http://www.javenue.info/post/76#comment-25817</guid>
		<description>в методе notifyObjectModified наверное должно быть не iter.next().objectCreated(), а iter.next().objectModified()</description>
		<content:encoded><![CDATA[<p>в методе notifyObjectModified наверное должно быть не iter.next().objectCreated(), а iter.next().objectModified()</p>
]]></content:encoded>
	</item>
</channel>
</rss>
