﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-软件工程实践者-随笔分类-软件设计</title><link>http://www.blogjava.net/robin/category/55106.html</link><description /><language>zh-cn</language><lastBuildDate>Sat, 03 Sep 2016 21:38:50 GMT</lastBuildDate><pubDate>Sat, 03 Sep 2016 21:38:50 GMT</pubDate><ttl>60</ttl><item><title>Bill Push的单例模式实现</title><link>http://www.blogjava.net/robin/archive/2016/09/03/431736.html</link><dc:creator>软件工程实践者</dc:creator><author>软件工程实践者</author><pubDate>Sat, 03 Sep 2016 01:37:00 GMT</pubDate><guid>http://www.blogjava.net/robin/archive/2016/09/03/431736.html</guid><wfw:comment>http://www.blogjava.net/robin/comments/431736.html</wfw:comment><comments>http://www.blogjava.net/robin/archive/2016/09/03/431736.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/robin/comments/commentRss/431736.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/robin/services/trackbacks/431736.html</trackback:ping><description><![CDATA[以下单例实现思想来自《Java Design Patterns: A Programmer's Approach》.<br />该方法利用了Java缺省的Lazy类实例化机制克服了传统单例模式实现中Lazy实例化方式的不足。<br /><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">class</span>&nbsp;Singleton&nbsp;{<br />&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">private</span>&nbsp;Singleton(){}<br />&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">static</span>&nbsp;Singleton&nbsp;getInstance(){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;Helper.instance;<br />&nbsp;&nbsp;&nbsp;}<br /><br />&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">static</span>&nbsp;<span style="color: #0000FF; ">class</span>&nbsp;Helper&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">private</span>&nbsp;<span style="color: #0000FF; ">static</span>&nbsp;Singleton&nbsp;instance&nbsp;=&nbsp;<span style="color: #0000FF; ">new</span>&nbsp;Singleton();<br />&nbsp;&nbsp;&nbsp;}<br />}</div><img src ="http://www.blogjava.net/robin/aggbug/431736.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/robin/" target="_blank">软件工程实践者</a> 2016-09-03 09:37 <a href="http://www.blogjava.net/robin/archive/2016/09/03/431736.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Maven error “Failure to transfer…”</title><link>http://www.blogjava.net/robin/archive/2016/09/02/431730.html</link><dc:creator>软件工程实践者</dc:creator><author>软件工程实践者</author><pubDate>Fri, 02 Sep 2016 07:52:00 GMT</pubDate><guid>http://www.blogjava.net/robin/archive/2016/09/02/431730.html</guid><wfw:comment>http://www.blogjava.net/robin/comments/431730.html</wfw:comment><comments>http://www.blogjava.net/robin/archive/2016/09/02/431730.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/robin/comments/commentRss/431730.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/robin/services/trackbacks/431730.html</trackback:ping><description><![CDATA[以下转自StackOverflow（<a href="http://stackoverflow.com/questions/5074063/maven-error-failure-to-transfer">http://stackoverflow.com/questions/5074063/maven-error-failure-to-transfer</a>），亲测可用。<br /><br /><br /><p style="margin: 0px 0px 1em; padding: 0px; border: 0px; font-size: 15px; clear: both; color: #242729; font-family: Arial, &quot;Helvetica Neue&quot;, Helvetica, sans-serif; line-height: 19.5px; background-color: #ffffff;">This worked for me in<strong style="background-color: yellow;"> Windows </strong>as well.</p><ol style="margin: 0px 0px 1em 30px; padding: 0px; border: 0px; font-size: 15px; color: #242729; font-family: Arial, &quot;Helvetica Neue&quot;, Helvetica, sans-serif; line-height: 19.5px; background-color: #ffffff;"><li style="margin: 0px 0px 0.5em; padding: 0px; border: 0px; word-wrap: break-word;">Locate the {user}/.m2/repository (Using Juno /Win7 here)</li><li style="margin: 0px 0px 0.5em; padding: 0px; border: 0px; word-wrap: break-word;">In the Search field in upper right of window, type ".lastupdated". Windows will look through all subfolders for these files in the directory. (I did not look through cache.)</li><li style="margin: 0px 0px 0.5em; padding: 0px; border: 0px; word-wrap: break-word;">Remove them by Right-click &gt; Delete (I kept all of the lastupdated.properties).</li><li style="margin: 0px; padding: 0px; border: 0px; word-wrap: break-word;">Then go back into Eclipse, Right-click on the project and select Maven &gt; Update Project. I selected to "Force Update of Snapshots/Releases". Click Ok and the dependencies finally resolved correctly.</li></ol><img src ="http://www.blogjava.net/robin/aggbug/431730.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/robin/" target="_blank">软件工程实践者</a> 2016-09-02 15:52 <a href="http://www.blogjava.net/robin/archive/2016/09/02/431730.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Groovy:Invalid duplicate class definition of class....The type xxx is already defined..</title><link>http://www.blogjava.net/robin/archive/2016/08/31/431712.html</link><dc:creator>软件工程实践者</dc:creator><author>软件工程实践者</author><pubDate>Wed, 31 Aug 2016 01:00:00 GMT</pubDate><guid>http://www.blogjava.net/robin/archive/2016/08/31/431712.html</guid><wfw:comment>http://www.blogjava.net/robin/comments/431712.html</wfw:comment><comments>http://www.blogjava.net/robin/archive/2016/08/31/431712.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/robin/comments/commentRss/431712.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/robin/services/trackbacks/431712.html</trackback:ping><description><![CDATA[当我们写Groovy脚本代码的时候，有时会发生编译错误，如下：<br /><br /><div>- Groovy:Invalid duplicate class definition of class XXX : The source XXXX\XXX.groovy contains at least two&nbsp;</div><div><span style="white-space:pre">	</span> definitions of the class XXX.</div><div><span style="white-space:pre">	</span>- The type XXX is already defined<br /><br />原因在于Groovy会把.groovy代码文件作为脚本或类定义来处理，例如如下代码：<br /><br /><span style="font-size: 13px; color: #0000ff;">class</span><span style="font-size: 13px; background-color: #eeeeee;">&nbsp;Order&nbsp;{</span><br style="font-size: 13px;" /><span style="font-size: 13px; background-color: #eeeeee;">&nbsp;&nbsp;&nbsp;&nbsp;def&nbsp;security</span><br style="font-size: 13px;" /><span style="font-size: 13px; background-color: #eeeeee;">&nbsp;&nbsp;&nbsp;&nbsp;def&nbsp;value</span><br style="font-size: 13px;" /><span style="font-size: 13px; background-color: #eeeeee;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 13px; color: #0000ff;">private</span><span style="font-size: 13px; background-color: #eeeeee;">&nbsp;buy_sell(su,&nbsp;closure)&nbsp;{</span><br style="font-size: 13px;" /><span style="font-size: 13px; background-color: #eeeeee;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;security&nbsp;</span><span style="font-size: 13px; background-color: #eeeeee;">=</span><span style="font-size: 13px; background-color: #eeeeee;">&nbsp;su[</span><span style="font-size: 13px; background-color: #eeeeee;">0</span><span style="font-size: 13px; background-color: #eeeeee;">]</span><br style="font-size: 13px;" /><span style="font-size: 13px; background-color: #eeeeee;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;quantity&nbsp;</span><span style="font-size: 13px; background-color: #eeeeee;">=</span><span style="font-size: 13px; background-color: #eeeeee;">&nbsp;su[</span><span style="font-size: 13px; background-color: #eeeeee;">1</span><span style="font-size: 13px; background-color: #eeeeee;">]</span><br style="font-size: 13px;" /><span style="font-size: 13px; background-color: #eeeeee;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;closure()</span><br style="font-size: 13px;" /><span style="font-size: 13px; background-color: #eeeeee;">&nbsp;&nbsp;&nbsp;&nbsp;}</span><br style="font-size: 13px;" /><span style="font-size: 13px; background-color: #eeeeee;">&nbsp;&nbsp;&nbsp;&nbsp;def&nbsp;getTo()&nbsp;{</span><br style="font-size: 13px;" /><span style="font-size: 13px; background-color: #eeeeee;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 13px; color: #0000ff;">this</span><br style="font-size: 13px;" /><span style="font-size: 13px; background-color: #eeeeee;">&nbsp;&nbsp;&nbsp;&nbsp;}</span><br style="font-size: 13px;" /><span style="font-size: 13px; background-color: #eeeeee;">}</span><br style="font-size: 13px;" /><span style="font-size: 13px; background-color: #eeeeee;">def&nbsp;methodMissing(String&nbsp;name,&nbsp;args)&nbsp;{</span><br style="font-size: 13px;" /><span style="font-size: 13px; background-color: #eeeeee;">&nbsp;&nbsp;&nbsp;&nbsp;order.metaClass.getMetaProperty(name).setProperty(order,&nbsp;args)</span><br style="font-size: 13px;" /><span style="font-size: 13px; background-color: #eeeeee;">}</span><br style="font-size: 13px;" /><span style="font-size: 13px; background-color: #eeeeee;">def&nbsp;getNewOrder()&nbsp;{</span><br style="font-size: 13px;" /><span style="font-size: 13px; background-color: #eeeeee;">&nbsp;&nbsp;&nbsp;&nbsp;order&nbsp;</span><span style="font-size: 13px; background-color: #eeeeee;">=</span>&nbsp;<span style="font-size: 13px; color: #0000ff;">new</span><span style="font-size: 13px; background-color: #eeeeee;">&nbsp;Order()</span><br style="font-size: 13px;" /><span style="font-size: 13px; background-color: #eeeeee;">}</span><br style="font-size: 13px;" /><br style="font-size: 13px;" /><span style="font-size: 13px; background-color: #eeeeee;">Integer.metaClass.getShares&nbsp;</span><span style="font-size: 13px; background-color: #eeeeee;">=</span><span style="font-size: 13px; background-color: #eeeeee;">&nbsp;{&nbsp;</span><span style="font-size: 13px; background-color: #eeeeee;">-&gt;</span><span style="font-size: 13px; background-color: #eeeeee;">&nbsp;delegate&nbsp;}</span><br /><br />Groovy会把上述代码作为脚本处理，同时缺省用文件名来作为一个外围类类包括整个脚本程序，此时，如果该文件名恰好也是Order的话，那么就会出现重复的类定义错误提示。<br />解决办法是将脚本文件名取另外一个不同的名字。</div><img src ="http://www.blogjava.net/robin/aggbug/431712.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/robin/" target="_blank">软件工程实践者</a> 2016-08-31 09:00 <a href="http://www.blogjava.net/robin/archive/2016/08/31/431712.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>OMG OCUP2考试通知</title><link>http://www.blogjava.net/robin/archive/2016/08/30/431700.html</link><dc:creator>软件工程实践者</dc:creator><author>软件工程实践者</author><pubDate>Tue, 30 Aug 2016 06:10:00 GMT</pubDate><guid>http://www.blogjava.net/robin/archive/2016/08/30/431700.html</guid><wfw:comment>http://www.blogjava.net/robin/comments/431700.html</wfw:comment><comments>http://www.blogjava.net/robin/archive/2016/08/30/431700.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/robin/comments/commentRss/431700.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/robin/services/trackbacks/431700.html</trackback:ping><description><![CDATA[<span style="font-family: verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">已经申请OCUP中级考试的学员可以在一年内（截止到17年9月份）免费申请OCUP2中级考试的资格（原有考试仍可以参加）。此外，2014年3月份之后参加了原有OCUP中级认证考试的学员可以免费申请OCUP2中级认证考试。详见OMG网站声明（</span><a href="http://www.omg.org/ocup-2/exam-info.htm%EF%BC%89%E3%80%82" rel="nofollow" target="_blank" data-mce-href="http://www.omg.org/ocup-2/exam-info.htm%EF%BC%89%E3%80%82" style="font-family: verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">http://www.omg.org/ocup-2/exam-info.htm）。</a><img src ="http://www.blogjava.net/robin/aggbug/431700.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/robin/" target="_blank">软件工程实践者</a> 2016-08-30 14:10 <a href="http://www.blogjava.net/robin/archive/2016/08/30/431700.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>