<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'><id>tag:blogger.com,1999:blog-8963924286998980153.post7577228217980715697..comments</id><updated>2010-11-18T21:55:01.154+02:00</updated><category term='stacktrace'/><category term='tools'/><category term='java'/><category term='refactoring'/><category term='engineering'/><category term='bug'/><category term='thougts'/><category term='detect deadlock'/><category term='events'/><category term='cloud'/><category term='jvm'/><category term='concurrency'/><category term='Randy Pausch'/><category term='time'/><category term='motivation'/><category term='builder'/><category term='strange bug'/><category term='people'/><category term='problems'/><category term='frameworks'/><category term='python'/><category term='software engineering'/><category term='OOP'/><category term='jstack'/><category term='mandelbug'/><category term='cheatsheet'/><category term='testing'/><category term='deadlock'/><category term='OS'/><category term='heisenbug'/><title type='text'>Comments on 0xABADBABE - computer science iside and outside: huge constructors - builder pattern</title><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.abadbabe.com/feeds/7577228217980715697/comments/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8963924286998980153/7577228217980715697/comments/default'/><link rel='alternate' type='text/html' href='http://blog.abadbabe.com/2010/01/huge-constructors.html'/><author><name>Vladimir</name><uri>http://www.blogger.com/profile/10275275069172624080</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://1.bp.blogspot.com/_hlzkxmofNck/TPPZzBnrXvI/AAAAAAAAE9s/aV90xsf6PKs/S220/avatar.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>2</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8963924286998980153.post-4282309036737399433</id><published>2010-11-18T21:55:01.154+02:00</published><updated>2010-11-18T21:55:01.154+02:00</updated><title type='text'>Здравствуйте, Иван,
Спасибо за коментарий и полезн...</title><content type='html'>Здравствуйте, Иван,&lt;br /&gt;Спасибо за коментарий и полезные ссылки на статьи.&lt;br /&gt;&lt;br /&gt;dialog.table(&amp;quot;results&amp;quot;).select(cellAt(row(6), column(8));&lt;br /&gt;&lt;br /&gt;Мощный вариант, хотя как мне кажется, иногда запутывает код. Подобный подход в jmock используется. Все равно для констуктор из 20 параметров это не оправдывает&lt;br /&gt;&lt;br /&gt;-------------&lt;br /&gt;Просто билдер должен быть отдельным классом, тогда Вы даже не меняете начальный класс.&lt;br /&gt;&amp;gt;&amp;gt; Makes sense, особенно для legacy кода&lt;br /&gt;&lt;br /&gt;P.S. Илье огромнейший привет.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8963924286998980153/7577228217980715697/comments/default/4282309036737399433'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8963924286998980153/7577228217980715697/comments/default/4282309036737399433'/><link rel='alternate' type='text/html' href='http://blog.abadbabe.com/2010/01/huge-constructors.html?showComment=1290110101154#c4282309036737399433' title=''/><author><name>Vladimir</name><uri>http://www.blogger.com/profile/10275275069172624080</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='15472025912994064869'/><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.abadbabe.com/2010/01/huge-constructors.html' ref='tag:blogger.com,1999:blog-8963924286998980153.post-7577228217980715697' source='http://www.blogger.com/feeds/8963924286998980153/posts/default/7577228217980715697' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-374212739'/></entry><entry><id>tag:blogger.com,1999:blog-8963924286998980153.post-2229846504825297036</id><published>2010-10-27T14:40:58.056+03:00</published><updated>2010-10-27T14:40:58.056+03:00</updated><title type='text'>Добрый день.
------------------
&amp;quot;Main disadva...</title><content type='html'>Добрый день.&lt;br /&gt;------------------&lt;br /&gt;&amp;quot;Main disadvantage over constructor is that you can forget some parameters&amp;quot;&lt;br /&gt;Тут[http://www.infoq.com/articles/internal-dsls-java] решают эту проблему так:&lt;br /&gt;dialog.table(&amp;quot;results&amp;quot;).selectCell(6, 8);&lt;br /&gt;заменяют на&lt;br /&gt;dialog.table(&amp;quot;results&amp;quot;).select(cellAt(row(6), column(8));&lt;br /&gt;или&lt;br /&gt;dialog.table(&amp;quot;results&amp;quot;).select(cellAt(column(3), row(5)); &lt;br /&gt;------------------&lt;br /&gt;&amp;quot;builder adds a lot of extra code to existent class&amp;quot;&lt;br /&gt;Просто билдер должен быть отдельным классом, тогда Вы даже не меняете начальный класс. По ссылке есть пример:&lt;br /&gt;&lt;br /&gt;Vacation vacation = vacation().starting(&amp;quot;10/09/2007&amp;quot;)&lt;br /&gt;                               .ending(&amp;quot;10/17/2007&amp;quot;)&lt;br /&gt;                               .city(&amp;quot;Paris&amp;quot;)&lt;br /&gt;                               .hotel(&amp;quot;Hilton&amp;quot;)&lt;br /&gt;                               .airline(&amp;quot;United&amp;quot;)&lt;br /&gt;                               .flight(&amp;quot;UA-6886&amp;quot;); &lt;br /&gt;&lt;br /&gt;так вот .vacation() - статический метод, НО не обязательно в класе Vacation!&lt;br /&gt;&lt;br /&gt;P.S. Попал к Вам случайно, нас обоих читает Илья Гаврисевич:)&lt;br /&gt;&lt;br /&gt;P.P.S. О Internal DSL я писал несколько раз, очень популярная сейчас тема:&lt;br /&gt;1) http://kharkovconcurrencygroup.blogspot.com/2010/01/matchers-constraints-predicates.html&lt;br /&gt;2) http://kharkovconcurrencygroup.blogspot.com/2010/04/dsl-apachecamel.html&lt;br /&gt;3) http://kharkovconcurrencygroup.blogspot.com/2010/10/approach-to-internal-domain-specific.html</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8963924286998980153/7577228217980715697/comments/default/2229846504825297036'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8963924286998980153/7577228217980715697/comments/default/2229846504825297036'/><link rel='alternate' type='text/html' href='http://blog.abadbabe.com/2010/01/huge-constructors.html?showComment=1288179658056#c2229846504825297036' title=''/><author><name>Golovach Ivan</name><uri>http://www.blogger.com/profile/17934541017925930523</uri><email>noreply@blogger.com</email><gd:image xmlns:gd='http://schemas.google.com/g/2005' rel='http://schemas.google.com/g/2005#thumbnail' width='22' height='32' src='http://4.bp.blogspot.com/_LDa5LcTLdQ0/Sr5ALgd9LQI/AAAAAAAAAAM/X0cibRqW50Q/S220/rsdn.jpg'/></author><thr:in-reply-to xmlns:thr='http://purl.org/syndication/thread/1.0' href='http://blog.abadbabe.com/2010/01/huge-constructors.html' ref='tag:blogger.com,1999:blog-8963924286998980153.post-7577228217980715697' source='http://www.blogger.com/feeds/8963924286998980153/posts/default/7577228217980715697' type='text/html'/><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='blogger.itemClass' value='pid-1699735722'/></entry></feed>
