??xml version="1.0" encoding="utf-8" standalone="yes"?>欧美日韩精品一区二区三区在线观看 ,国产丝袜一区二区,色一区二区三区http://www.aygfsteel.com/heack/在追求中q步zh-cnWed, 07 May 2025 09:10:06 GMTWed, 07 May 2025 09:10:06 GMT60html5 Zcanvas的基c设?/title><link>http://www.aygfsteel.com/heack/archive/2010/06/13/323486.html</link><dc:creator>孔阳</dc:creator><author>孔阳</author><pubDate>Sat, 12 Jun 2010 18:07:00 GMT</pubDate><guid>http://www.aygfsteel.com/heack/archive/2010/06/13/323486.html</guid><wfw:comment>http://www.aygfsteel.com/heack/comments/323486.html</wfw:comment><comments>http://www.aygfsteel.com/heack/archive/2010/06/13/323486.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/heack/comments/commentRss/323486.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/heack/services/trackbacks/323486.html</trackback:ping><description><![CDATA[先给大家看一个demo <br /> http://www.koooi.com/html5/<br /> 代码很简?br /> 面上面加一?lt;canvas style="border:1px solid" id="canvas" width="1000" height="800"><br />             <p><br />                 Your browser does not support the canvas element.<br />             </p><br />         </canvas><br /> 然后javascript中写?br /> <div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #0000ff;">var</span><span style="color: #000000;"> canvas </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">null</span><span style="color: #000000;">;<br /> </span><span style="color: #0000ff;">var</span><span style="color: #000000;"> ctx </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">null</span><span style="color: #000000;">;<br /> </span><span style="color: #0000ff;">var</span><span style="color: #000000;"> score </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #000000;">0</span><span style="color: #000000;">;<br /> </span><span style="color: #0000ff;">var</span><span style="color: #000000;"> num </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #000000;">51</span><span style="color: #000000;">;<br /> </span><span style="color: #0000ff;">function</span><span style="color: #000000;"> getRandomInt(a, b){<br />     </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> Math.floor(Math.random() </span><span style="color: #000000;">*</span><span style="color: #000000;"> (b </span><span style="color: #000000;">-</span><span style="color: #000000;"> a </span><span style="color: #000000;">+</span><span style="color: #000000;"> </span><span style="color: #000000;">1</span><span style="color: #000000;">)) </span><span style="color: #000000;">+</span><span style="color: #000000;"> a;<br />     <br /> }<br /> <br /> window.onload </span><span style="color: #000000;">=</span><span style="color: #000000;"> init;<br /> <br /> </span><span style="color: #0000ff;">function</span><span style="color: #000000;"> init(){<br />     canvas </span><span style="color: #000000;">=</span><span style="color: #000000;"> document.getElementById('canvas');<br />     scoreID </span><span style="color: #000000;">=</span><span style="color: #000000;"> document.getElementById('score');<br />     ctx </span><span style="color: #000000;">=</span><span style="color: #000000;"> canvas.getContext('2d');<br />     </span><span style="color: #008000;">//</span><span style="color: #008000;">    setInterval(draw, 1000 / FPS);</span><span style="color: #008000;"><br /> </span><span style="color: #000000;">    <br />     controller </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">new</span><span style="color: #000000;"> ERIC.CanvasController(ctx, canvas.width, canvas.height);<br />     controller.animateStopBySignal();<br />     canvas.onclick </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">function</span><span style="color: #000000;">(e){<br />         </span><span style="color: #0000ff;">var</span><span style="color: #000000;"> mousex </span><span style="color: #000000;">=</span><span style="color: #000000;"> e.clientX;<br />         </span><span style="color: #0000ff;">var</span><span style="color: #000000;"> mousey </span><span style="color: #000000;">=</span><span style="color: #000000;"> e.clientY;<br />         </span><span style="color: #0000ff;">var</span><span style="color: #000000;"> relativex </span><span style="color: #000000;">=</span><span style="color: #000000;"> mousex </span><span style="color: #000000;">-</span><span style="color: #000000;"> canvas.offsetLeft;<br />         </span><span style="color: #0000ff;">var</span><span style="color: #000000;"> relativey </span><span style="color: #000000;">=</span><span style="color: #000000;"> mousey </span><span style="color: #000000;">-</span><span style="color: #000000;"> canvas.offsetTop;<br />         </span><span style="color: #0000ff;">var</span><span style="color: #000000;"> len </span><span style="color: #000000;">=</span><span style="color: #000000;"> controller.canvasObjectList.length;<br />         </span><span style="color: #0000ff;">var</span><span style="color: #000000;"> infig </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">false</span><span style="color: #000000;">;<br />         </span><span style="color: #0000ff;">for</span><span style="color: #000000;"> (i </span><span style="color: #000000;">=</span><span style="color: #000000;"> len </span><span style="color: #000000;">-</span><span style="color: #000000;"> </span><span style="color: #000000;">1</span><span style="color: #000000;">; i </span><span style="color: #000000;">>=</span><span style="color: #000000;"> </span><span style="color: #000000;">0</span><span style="color: #000000;">; i</span><span style="color: #000000;">--</span><span style="color: #000000;">) {<br />             </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (controller.canvasObjectList[i].isInFigure(relativex, relativey)) {<br />                 score </span><span style="color: #000000;">=</span><span style="color: #000000;"> score </span><span style="color: #000000;">+</span><span style="color: #000000;"> </span><span style="color: #000000;">10</span><span style="color: #000000;">;<br />                 infig </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">true</span><span style="color: #000000;">;<br />                 controller.canvasObjectList[i].removeFromControl();<br />             }<br />         }<br />         </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (</span><span style="color: #000000;">!</span><span style="color: #000000;">infig) {<br />             score </span><span style="color: #000000;">=</span><span style="color: #000000;"> score </span><span style="color: #000000;">-</span><span style="color: #000000;"> </span><span style="color: #000000;">10</span><span style="color: #000000;">;<br />         }<br />         scoreID.innerHTML </span><span style="color: #000000;">=</span><span style="color: #000000;"> score;<br />     }<br />     <br />     ERIC.run(</span><span style="color: #0000ff;">function</span><span style="color: #000000;"> test(){<br />         </span><span style="color: #0000ff;">var</span><span style="color: #000000;"> t </span><span style="color: #000000;">=</span><span style="color: #000000;"> getRandomInt(</span><span style="color: #000000;">0</span><span style="color: #000000;">, </span><span style="color: #000000;">0</span><span style="color: #000000;">);<br />         </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (t </span><span style="color: #000000;">==</span><span style="color: #000000;"> </span><span style="color: #000000;">0</span><span style="color: #000000;">) {<br />             num</span><span style="color: #000000;">--</span><span style="color: #000000;">;<br />             </span><span style="color: #0000ff;">if</span><span style="color: #000000;">(num</span><span style="color: #000000;">==</span><span style="color: #000000;">0</span><span style="color: #000000;">){<br />                 ERIC.stop();<br />                 </span><span style="color: #0000ff;">return</span><span style="color: #000000;">;<br />             }<br />             </span><span style="color: #0000ff;">var</span><span style="color: #000000;"> cir1 </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">new</span><span style="color: #000000;"> ERIC.Circle(getRandomInt(</span><span style="color: #000000;">70</span><span style="color: #000000;">, </span><span style="color: #000000;">930</span><span style="color: #000000;">), getRandomInt(</span><span style="color: #000000;">70</span><span style="color: #000000;">, </span><span style="color: #000000;">730</span><span style="color: #000000;">), </span><span style="color: #000000;">5</span><span style="color: #000000;">);<br />             cir1.setTriggerDelete(</span><span style="color: #0000ff;">function</span><span style="color: #000000;">(){<br />                 </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> </span><span style="color: #0000ff;">this</span><span style="color: #000000;">.radius </span><span style="color: #000000;">>=</span><span style="color: #000000;"> </span><span style="color: #000000;">40</span><span style="color: #000000;">;<br />             });<br />             cir1.setAction(</span><span style="color: #0000ff;">function</span><span style="color: #000000;">(){<br />                 </span><span style="color: #0000ff;">this</span><span style="color: #000000;">.radius </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">this</span><span style="color: #000000;">.radius </span><span style="color: #000000;">+</span><span style="color: #000000;"> </span><span style="color: #000000;">1</span><span style="color: #000000;">;<br />             });<br />             controller.add(cir1);<br />         }<br />     }, </span><span style="color: #000000;">400</span><span style="color: #000000;">);<br /> }<br /> </span></div> <br /> 很简单的代码Q利用了(jin)我写的基cERIC.Circle Eric.<span style="color: #000000;">CanvasController 以及(qing)ERIC.Run<br /> 使用介:(x)<br /> 1.先实例化ERIC.</span><span style="color: #000000;">CanvasController,假设实例名字controller<br /> 2.实例化一个ERIC.BasicFigurecȝ子类的对象,现在EricUtils.js只提供了(jin)一个扩展类CircleQ假讑֮例名字ؓ(f)cir<br /> 3.讄cir实例的动作和删除的条件。动作意思是每一个动画要执行什么操作,比如圆的半径?Q?或者圆?j)移动。删除的条g比如半径大于50׃d当中删除掉,不再昄q个圆?br /> cir1.setTriggerDelete(function(){<br />                 return this.radius >= 40;<br />             });<br />             cir1.setAction(function(){<br />                 this.radius = this.radius + 1;<br />             });<br /> 4.把cird到controller中。controller.add(cir)<br /> 5.调用controller.animate(); 此方法会(x)以每U?0帧来dcir对象Q每帧结束执行cir在第三步讄的动作。到辑ֈ除条件会(x)删除掉该object,直到没有object在controller当中?br /> 6.也可以调用controller.animateStopBySignal()Ҏ(gu)Q动作和5相同Q但是会(x)一直进行渲染,q样适合于(f)时添加object到controller当中Q添加进M后马上就可以被渲染,直到满被删除的条g。渲染结束需要调用controller.signalStop()<br /> </span><span style="color: #000000;"><br /> 基础cM载地址http://www.koooi.com/html5/js/EricUtils.js<br /> 当然Q这只是一个框Ӟ以后要添加更多的功能Q如果?zhn)对于html5有兴,打算和我一h开发,Ƣ迎联系?br /> 希望可以起到抛砖引玉的作用?br /> QQ627?3四四?br /> <br /> </span> <img src ="http://www.aygfsteel.com/heack/aggbug/323486.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/heack/" target="_blank">孔阳</a> 2010-06-13 02:07 <a href="http://www.aygfsteel.com/heack/archive/2010/06/13/323486.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用JAVA实现AIhttp://www.aygfsteel.com/heack/archive/2010/06/06/322929.html孔阳孔阳Sun, 06 Jun 2010 15:59:00 GMThttp://www.aygfsteel.com/heack/archive/2010/06/06/322929.htmlhttp://www.aygfsteel.com/heack/comments/322929.htmlhttp://www.aygfsteel.com/heack/archive/2010/06/06/322929.html#Feedback5http://www.aygfsteel.com/heack/comments/commentRss/322929.htmlhttp://www.aygfsteel.com/heack/services/trackbacks/322929.html阅读全文

孔阳 2010-06-06 23:59 发表评论
]]>
用动态规划算法对最大子串问题的java实现http://www.aygfsteel.com/heack/archive/2009/09/15/295080.html孔阳孔阳Mon, 14 Sep 2009 17:19:00 GMThttp://www.aygfsteel.com/heack/archive/2009/09/15/295080.htmlhttp://www.aygfsteel.com/heack/comments/295080.htmlhttp://www.aygfsteel.com/heack/archive/2009/09/15/295080.html#Feedback7http://www.aygfsteel.com/heack/comments/commentRss/295080.htmlhttp://www.aygfsteel.com/heack/services/trackbacks/295080.html 动态规划算法最重要的就是分解问题,扑և递归。说一下我的思考思\Q首先拿?个字W串Q如何找到最长子串呢Q?br /> 1.假设他们(字符串a,b)的头字母不相同的话,那么分别L首字母比较,也就是说用a.subString(1)和b比较Q用b.subString(1)和a比较Q最长子字符串没变吧Q答案是肯定的。ok递归出现?jin),l束条g是有一个字W串变空Q返回值就是a和b的最长子丌Ӏ?br /> b.假设他们头字母相同,那么一直比较下去,知道两者的Wn个字母不相同Q然后把前n-1个字母存为子字符串c,把a.subString(1)和bq回l果Cؓ(f)d,b.subString(1)和aq回l果Cؓ(f)e,那么q回cQd和e最长的一?感谢lexy的评论,之前实遗漏一U情c(din)不应该直接把前面的相同的去掉直接比较的Q现在代码已l更C(jin))?br /> 也许有h说应该从后面往前面比较Q找到相同的然后一个个再往前比Q其实道理都是一L(fng)Q关键要扑ֈ分解问题的方法。这里只是抛砖引玉,下面是具体的java实现?br />
import java.util.HashMap;
import java.util.Map;
 
/**
@author HEACK
*
*/
public class CompareStr {
 
        
/**
        * 
@param args
        
*/
        
public static void main(String[] args) {
                
// TODO Auto-generated method stub
                String str1 = "abcde1234567abcdefghijk";
                String str2 
= "abcdefgh12345";
               
                
//String str2 = "abc happyies dutcbirthday peter";
                CompareStr cj = new CompareStr();
                System.out.println(cj.getLongestString(str1,str2));
 
        }
 
        
private boolean isEmpty(String str) {
                
return str == null || str.trim().length() == 0;
        }
        
private Map map = new HashMap();
 
        
private String getLongestString(String str1, String str2) {
                
if (isEmpty(str1) || isEmpty(str2)) {
                        
return "";
                }
                StringBuffer key 
= new StringBuffer();
                key.append(str1).append(
"&&").append(str2);
                
if (map.containsKey(key.toString())) {
                        
return (String)map.get(key.toString());
                }
                StringBuffer longestStr 
= new StringBuffer();
                
char[] str1List = str1.toCharArray();
                
char[] str2List = str2.toCharArray();
                
int i = 0;
                
for (i = 0; i < str1List.length && i < str2List.length; i++) {
                        
if (str1List[i] == str2List[i]) {
                                longestStr.append(str1List[i]);
                        } 
else {
                                
break;
                        }
                }
                String subStr1 
= str1.substring(i);
                String subStr2 
= str2.substring(i);
                
if (i == 0) {
                        String retStr1 
= getLongestString(subStr1.substring(1), subStr2);
                        String retStr2 
= getLongestString(subStr1, subStr2.substring(1));
                        String returnStr 
= retStr1.length() >= retStr2.length() ? retStr1 : retStr2;
                        map.put(key.toString(), returnStr);
                        
return returnStr;
                } 
else {
                        String retStr1 
= getLongestString(str1.substring(1), str2);
                        String retStr2 
= getLongestString(str1, str2.substring(1));
                        String retStr 
= retStr1.length() > retStr2.length() ? retStr1
                    : retStr2;
                        String returnStr 
= retStr.length() >= longestStr.toString().length() ? retStr
                                        : longestStr.toString();
                        map.put(key.toString(), returnStr);
                        
return returnStr;
                }
        }
 
}

HashMap用来存储已经计算q的字符Ԍ用空间换旉。代码当然还可以优化Q?zhn)也可以一试n手哦?br />


孔阳 2009-09-15 01:19 发表评论
]]>
decorator装饰模式的一U改q写?/title><link>http://www.aygfsteel.com/heack/archive/2009/05/22/277376.html</link><dc:creator>孔阳</dc:creator><author>孔阳</author><pubDate>Fri, 22 May 2009 09:20:00 GMT</pubDate><guid>http://www.aygfsteel.com/heack/archive/2009/05/22/277376.html</guid><wfw:comment>http://www.aygfsteel.com/heack/comments/277376.html</wfw:comment><comments>http://www.aygfsteel.com/heack/archive/2009/05/22/277376.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.aygfsteel.com/heack/comments/commentRss/277376.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/heack/services/trackbacks/277376.html</trackback:ping><description><![CDATA[倘若,有这么一个需?对于一个数?如果是负?那么需要变成正的相反数,如果?的倍数,那么除?,如果?的倍数,那么除?,可能以后q有其他的需?比如?的倍数,再除以5,或者是6的倍数,那么加?,也就是结果与序息息相关,那么应该如何来实现呢?<br /> 如果写一个类的方?按照q个需求来写if语句,可以,但是,如果有两套定制的?一套需要其中的几种变化,另外需要另外几U?那么需?个方?而且其中有很多的重复代码,q样行不通的.<br /> 其实设计模式说到?其根本思想是扑ֈ变化q封装之.q里变化的是处理的方?那么我们把它封装v?实现的类如下:<br /> <br /> <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #0000ff;">package</span><span style="color: #000000;"> decorater;<br /> <br /> </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> </span><span style="color: #0000ff;">class</span><span style="color: #000000;"> Integor {<br />     </span><span style="color: #0000ff;">private</span><span style="color: #000000;"> Integer x;<br /> <br />     </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> Integer getX() {<br />         </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> x;<br />     }<br /> <br />     </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> </span><span style="color: #0000ff;">void</span><span style="color: #000000;"> setX(Integer x) {<br />         </span><span style="color: #0000ff;">this</span><span style="color: #000000;">.x </span><span style="color: #000000;">=</span><span style="color: #000000;"> x;<br />     }<br />     Integor(Integer x){<br />         </span><span style="color: #0000ff;">this</span><span style="color: #000000;">.x </span><span style="color: #000000;">=</span><span style="color: #000000;"> x;<br />     }<br /> }<br /> </span></div> ׃Integer不能修改传递的?所以写一个类来封装一个integer<br /> <br /> <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #008000;">/**</span><span style="color: #008000;"><br />  * <br />  </span><span style="color: #008000;">*/</span><span style="color: #000000;"><br /> </span><span style="color: #0000ff;">package</span><span style="color: #000000;"> decorater;<br /> </span><span style="color: #000000;"><br /> </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> </span><span style="color: #0000ff;">abstract</span><span style="color: #000000;"> </span><span style="color: #0000ff;">class</span><span style="color: #000000;"> Decorater {<br />     </span><span style="color: #0000ff;">private</span><span style="color: #000000;"> Decorater next;<br /> <br />     </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> Decorater setNext(Decorater dcrtr) {<br />         </span><span style="color: #0000ff;">this</span><span style="color: #000000;">.next </span><span style="color: #000000;">=</span><span style="color: #000000;"> dcrtr;<br />         </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> </span><span style="color: #0000ff;">this</span><span style="color: #000000;">.next;<br />     }<br /> <br />     </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> </span><span style="color: #0000ff;">void</span><span style="color: #000000;"> process(Integor x) {<br />         </span><span style="color: #0000ff;">this</span><span style="color: #000000;">.executeBefore(x);<br />         </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (</span><span style="color: #0000ff;">this</span><span style="color: #000000;">.next </span><span style="color: #000000;">!=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">null</span><span style="color: #000000;">) {<br />             </span><span style="color: #0000ff;">this</span><span style="color: #000000;">.next.process(x);<br />         }<br />         </span><span style="color: #0000ff;">this</span><span style="color: #000000;">.executeAfter(x);<br />     }<br /> <br />     </span><span style="color: #0000ff;">protected</span><span style="color: #000000;"> </span><span style="color: #0000ff;">abstract</span><span style="color: #000000;"> </span><span style="color: #0000ff;">void</span><span style="color: #000000;"> executeBefore(Object x);<br /> <br />     </span><span style="color: #0000ff;">protected</span><span style="color: #000000;"> </span><span style="color: #0000ff;">abstract</span><span style="color: #000000;"> </span><span style="color: #0000ff;">void</span><span style="color: #000000;"> executeAfter(Object x);<br /> <br /> }<br /> </span></div> 每个实现的类只需要来实现executeBefore和executeAfterҎ(gu)卛_.<br /> 注意实现的顺序是<br /> decorater1.executeBefore->decorater2.executeBefore->decorater3.executeBefore->decorater3.executeAfter->decorater2.executeAfter->decorater1.executerAfter<br /> <br /> <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #0000ff;">package</span><span style="color: #000000;"> decorater;<br /> <br /> </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> </span><span style="color: #0000ff;">class</span><span style="color: #000000;"> PositiveDecorater </span><span style="color: #0000ff;">extends</span><span style="color: #000000;"> Decorater {<br /> <br />     @Override<br />     </span><span style="color: #0000ff;">protected</span><span style="color: #000000;"> </span><span style="color: #0000ff;">void</span><span style="color: #000000;"> executeAfter(Object x) {<br /> <br />         System.out.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">PositiveDecorater end!</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />     }<br /> <br />     @Override<br />     </span><span style="color: #0000ff;">protected</span><span style="color: #000000;"> </span><span style="color: #0000ff;">void</span><span style="color: #000000;"> executeBefore(Object x) {<br />         </span><span style="color: #008000;">//</span><span style="color: #008000;"> TODO Auto-generated method stub</span><span style="color: #008000;"><br /> </span><span style="color: #000000;"><br />         System.out.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">starting PositiveDecorater!</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />         Integor in </span><span style="color: #000000;">=</span><span style="color: #000000;"> (Integor) x;<br />         </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (in.getX() </span><span style="color: #000000;"><</span><span style="color: #000000;"> </span><span style="color: #000000;">0</span><span style="color: #000000;">)<br />             in.setX(</span><span style="color: #000000;">-</span><span style="color: #000000;">in.getX());<br />     }<br /> <br /> }<br /> </span></div> <br /> <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #0000ff;">package</span><span style="color: #000000;"> decorater;<br /> <br /> </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> </span><span style="color: #0000ff;">class</span><span style="color: #000000;"> Devide2Decorater </span><span style="color: #0000ff;">extends</span><span style="color: #000000;"> Decorater {<br /> <br />     @Override<br />     </span><span style="color: #0000ff;">protected</span><span style="color: #000000;"> </span><span style="color: #0000ff;">void</span><span style="color: #000000;"> executeAfter(Object x) {<br />         System.out.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">Devide2Decorater end!</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br /> <br />     }<br /> <br />     @Override<br />     </span><span style="color: #0000ff;">protected</span><span style="color: #000000;"> </span><span style="color: #0000ff;">void</span><span style="color: #000000;"> executeBefore(Object x) {<br />         System.out.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">Starting Devide2Decorater!</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />         Integor in </span><span style="color: #000000;">=</span><span style="color: #000000;"> (Integor) x;<br />         </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (in.getX() </span><span style="color: #000000;">%</span><span style="color: #000000;"> </span><span style="color: #000000;">2</span><span style="color: #000000;"> </span><span style="color: #000000;">==</span><span style="color: #000000;"> </span><span style="color: #000000;">0</span><span style="color: #000000;">) {<br />             in.setX(in.getX() </span><span style="color: #000000;">/</span><span style="color: #000000;"> </span><span style="color: #000000;">2</span><span style="color: #000000;">);<br />         }<br /> <br />     }<br /> <br /> }<br /> </span></div> <br /> <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #0000ff;">package</span><span style="color: #000000;"> decorater;<br /> <br /> </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> </span><span style="color: #0000ff;">class</span><span style="color: #000000;"> Devide3Decorater </span><span style="color: #0000ff;">extends</span><span style="color: #000000;"> Decorater {<br /> <br />     @Override<br />     </span><span style="color: #0000ff;">protected</span><span style="color: #000000;"> </span><span style="color: #0000ff;">void</span><span style="color: #000000;"> executeAfter(Object x) {<br />         System.out.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">Devide3Decorater end!</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />     }<br /> <br />     @Override<br />     </span><span style="color: #0000ff;">protected</span><span style="color: #000000;"> </span><span style="color: #0000ff;">void</span><span style="color: #000000;"> executeBefore(Object x) {<br /> <br />         System.out.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">Starting Devide3Decorater!</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />         Integor in </span><span style="color: #000000;">=</span><span style="color: #000000;"> (Integor) x;<br />         </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (in.getX() </span><span style="color: #000000;">%</span><span style="color: #000000;"> </span><span style="color: #000000;">3</span><span style="color: #000000;"> </span><span style="color: #000000;">==</span><span style="color: #000000;"> </span><span style="color: #000000;">0</span><span style="color: #000000;">) {<br />             in.setX(in.getX() </span><span style="color: #000000;">/</span><span style="color: #000000;"> </span><span style="color: #000000;">3</span><span style="color: #000000;">);<br />         }<br /> <br />     }<br /> <br /> }<br /> </span></div> <br /> <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #008000;">/**</span><span style="color: #008000;"><br />  * <br />  </span><span style="color: #008000;">*/</span><span style="color: #000000;"><br /> </span><span style="color: #0000ff;">package</span><span style="color: #000000;"> decorater;<br /> <br /> </span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />  * </span><span style="color: #808080;">@author</span><span style="color: #008000;"> KONGHE<br />  * <br />  </span><span style="color: #008000;">*/</span><span style="color: #000000;"><br /> </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> </span><span style="color: #0000ff;">class</span><span style="color: #000000;"> Main {<br /> <br />     </span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />      * </span><span style="color: #808080;">@param</span><span style="color: #008000;"> args<br />      </span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />     </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> </span><span style="color: #0000ff;">static</span><span style="color: #000000;"> </span><span style="color: #0000ff;">void</span><span style="color: #000000;"> main(String[] args) {<br />         Decorater a </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">new</span><span style="color: #000000;"> PositiveDecorater();<br />         a.setNext(</span><span style="color: #0000ff;">new</span><span style="color: #000000;"> Devide2Decorater()).setNext(</span><span style="color: #0000ff;">new</span><span style="color: #000000;"> Devide3Decorater());<br />         Integor x </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">new</span><span style="color: #000000;"> Integor(</span><span style="color: #000000;">-</span><span style="color: #000000;">18</span><span style="color: #000000;">);<br />         a.process(x);<br />         System.out.println(x.getX());<br /> <br />     }<br /> <br /> }<br /> </span></div> <br /> 输出l果?<br /> starting PositiveDecorater!<br /> Starting Devide2Decorater!<br /> Starting Devide3Decorater!<br /> Devide3Decorater end!<br /> Devide2Decorater end!<br /> PositiveDecorater end!<br /> 3<br /> <br /> 其实每种设计模式的核?j)思想都是一致的,但是没有必要照本宣科,只要注意其模式的_N,可以了(jin),剩下的就是自己去按照实现来设计其中的l节?比如我设计这个模?是先写?jin)main函数,把其中的Ҏ(gu)写好,然后L照这个实现来惛_如何实现,q样才更W合解决实际的问?其实decorater模式有很多种实现方式.比如下面的这U解?也可:<br /> <br /> <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #008000;">/**</span><span style="color: #008000;"><br />  * <br />  </span><span style="color: #008000;">*/</span><span style="color: #000000;"><br /> </span><span style="color: #0000ff;">package</span><span style="color: #000000;"> decorator;<br /> <br /> </span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />  * </span><span style="color: #808080;">@author</span><span style="color: #008000;"> KONGHE<br />  * <br />  </span><span style="color: #008000;">*/</span><span style="color: #000000;"><br /> </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> </span><span style="color: #0000ff;">class</span><span style="color: #000000;"> Main {<br /> <br />     </span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />      * </span><span style="color: #808080;">@param</span><span style="color: #008000;"> args<br />      </span><span style="color: #008000;">*/</span><span style="color: #000000;"><br />     </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> </span><span style="color: #0000ff;">static</span><span style="color: #000000;"> </span><span style="color: #0000ff;">void</span><span style="color: #000000;"> main(String[] args) {<br />         DecoraterChain a </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">new</span><span style="color: #000000;"> DecoraterChain();<br />         a.setNext(</span><span style="color: #0000ff;">new</span><span style="color: #000000;"> PositiveDecorater()).setNext(</span><span style="color: #0000ff;">new</span><span style="color: #000000;"> Devide2Decorater()).setNext(</span><span style="color: #0000ff;">new</span><span style="color: #000000;"> Devide3Decorater());<br />         Integer x </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #000000;">-</span><span style="color: #000000;">32</span><span style="color: #000000;">;<br />         x </span><span style="color: #000000;">=</span><span style="color: #000000;"> a.process(x);<br />         System.out.println(x);<br /> <br />     }<br /> <br /> }</span></div> <br /> <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #008000;">/**</span><span style="color: #008000;"><br />  * <br />  </span><span style="color: #008000;">*/</span><span style="color: #000000;"><br /> </span><span style="color: #0000ff;">package</span><span style="color: #000000;"> decorator;<br /> <br /> </span><span style="color: #0000ff;">import</span><span style="color: #000000;"> java.util.ArrayList;<br /> </span><span style="color: #0000ff;">import</span><span style="color: #000000;"> java.util.List;<br /> <br /> </span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />  * </span><span style="color: #808080;">@author</span><span style="color: #008000;"> KONGHE<br />  * <br />  </span><span style="color: #008000;">*/</span><span style="color: #000000;"><br /> </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> </span><span style="color: #0000ff;">class</span><span style="color: #000000;"> DecoraterChain {<br />     </span><span style="color: #0000ff;">private</span><span style="color: #000000;"> List</span><span style="color: #000000;"><</span><span style="color: #000000;">Decorater</span><span style="color: #000000;">></span><span style="color: #000000;"> decorater </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">new</span><span style="color: #000000;"> ArrayList</span><span style="color: #000000;"><</span><span style="color: #000000;">Decorater</span><span style="color: #000000;">></span><span style="color: #000000;">();<br /> <br />     </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> DecoraterChain setNext(Decorater decrter) {<br />         decorater.add(decrter);<br />         </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> </span><span style="color: #0000ff;">this</span><span style="color: #000000;">;<br />     }<br /> <br />     </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> Integer process(Integer x) {<br />         </span><span style="color: #0000ff;">for</span><span style="color: #000000;"> (</span><span style="color: #0000ff;">int</span><span style="color: #000000;"> i </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #000000;">0</span><span style="color: #000000;">; i </span><span style="color: #000000;"><</span><span style="color: #000000;"> </span><span style="color: #0000ff;">this</span><span style="color: #000000;">.decorater.size(); i</span><span style="color: #000000;">++</span><span style="color: #000000;">) {<br />             x </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000ff;">this</span><span style="color: #000000;">.decorater.get(i).process(x);<br />         }<br />         </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> x;<br />     }<br /> <br /> }<br /> </span></div> <br /> <div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --><span style="color: #008000;">/**</span><span style="color: #008000;"><br />  * <br />  </span><span style="color: #008000;">*/</span><span style="color: #000000;"><br /> </span><span style="color: #0000ff;">package</span><span style="color: #000000;"> decorator;<br /> <br /> <br /> </span><span style="color: #008000;">/**</span><span style="color: #008000;"><br />  * </span><span style="color: #808080;">@author</span><span style="color: #008000;"> KONGHE<br />  * <br />  </span><span style="color: #008000;">*/</span><span style="color: #000000;"><br /> </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> </span><span style="color: #0000ff;">abstract</span><span style="color: #000000;"> </span><span style="color: #0000ff;">class</span><span style="color: #000000;"> Decorater {<br />     </span><span style="color: #0000ff;">public</span><span style="color: #000000;"> </span><span style="color: #0000ff;">abstract</span><span style="color: #000000;"> Integer process(Integer x);<br /> <br /> }<br /> </span></div> <br /> <br /> 总而言?模式是ؓ(f)?jin)具体的实际情况而服务的,不要Z(jin)一定要ȝ某种设计模式而委屈自q需?<br /> 在设计的时候多x,可能某天你再读设计模式的?你会(x)发现,原来我之前写的代?包含?jin)这么多的设计模式?<br /> <br /> <br /> <br /> <br /> <img src ="http://www.aygfsteel.com/heack/aggbug/277376.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/heack/" target="_blank">孔阳</a> 2009-05-22 17:20 <a href="http://www.aygfsteel.com/heack/archive/2009/05/22/277376.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>myeclipse开发struts, spring, hibernate配置注意要点(新手入门)http://www.aygfsteel.com/heack/archive/2009/02/20/255861.html孔阳孔阳Fri, 20 Feb 2009 08:34:00 GMThttp://www.aygfsteel.com/heack/archive/2009/02/20/255861.htmlhttp://www.aygfsteel.com/heack/comments/255861.htmlhttp://www.aygfsteel.com/heack/archive/2009/02/20/255861.html#Feedback0http://www.aygfsteel.com/heack/comments/commentRss/255861.htmlhttp://www.aygfsteel.com/heack/services/trackbacks/255861.html 1.保以下几个jar不在project build path里面,否则?x)出现各U冲H问?
c3p0-0.9.0.4.jar
asm-2.2.3.jar
hibernate-annotations.jar
2.d序->spring,hibernate,struts
3.修改 struts-config.xml
action-mappings标签里面的type改ؓ(f)org.springframework.web.struts.DelegatingActionProxy
例如:
<action attribute="userSearchForm" input="/userSearch.jsp"
            name="userSearchForm" path="/userSearch" scope="request"
            type="org.springframework.web.struts.DelegatingActionProxy">
            <forward name="success" path="success.jsp" />
</action>
最后加?br /> <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
        <set-property property="contextConfigLocation" value="/WEB-INF/classes/applicationContext.xml" />
</plug-in>
4.applicationContext.xml里面d
<bean name="/userSearch" class="com.oocl.struts.action.UserSearchAction">
        <property name="actionLogDAO">
            <ref bean="AlActionlogDAO" />
        </property>
</bean>
q里的要注意,是name="/userSearch"不是id
q有,要确认好q个property的name一定要和你的bean class里面的fieldW合
5.myEclipsedspring,hibernate,struts支持的时?量把所有的jar都包含进来吧,然后把不需要的l删除掉.




孔阳 2009-02-20 16:34 发表评论
]]>
用myeclipse开发oc4jW一个webservice的简单示?/title><link>http://www.aygfsteel.com/heack/archive/2009/02/11/254205.html</link><dc:creator>孔阳</dc:creator><author>孔阳</author><pubDate>Wed, 11 Feb 2009 02:21:00 GMT</pubDate><guid>http://www.aygfsteel.com/heack/archive/2009/02/11/254205.html</guid><wfw:comment>http://www.aygfsteel.com/heack/comments/254205.html</wfw:comment><comments>http://www.aygfsteel.com/heack/archive/2009/02/11/254205.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/heack/comments/commentRss/254205.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/heack/services/trackbacks/254205.html</trackback:ping><description><![CDATA[     摘要: 新徏project.如下N择Q? 建立好以后的目录?wi)如?   d新的webservice 接口和实现类? 依次选择File->New->Other 如图 点击Finish. 双击~辑HelloWorldImpl.java 代码如下: public class HelloWor...  <a href='http://www.aygfsteel.com/heack/archive/2009/02/11/254205.html'>阅读全文</a><img src ="http://www.aygfsteel.com/heack/aggbug/254205.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/heack/" target="_blank">孔阳</a> 2009-02-11 10:21 <a href="http://www.aygfsteel.com/heack/archive/2009/02/11/254205.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用遗传算法实现旅行商问题的Java实现http://www.aygfsteel.com/heack/archive/2009/02/08/253803.html孔阳孔阳Sun, 08 Feb 2009 11:03:00 GMThttp://www.aygfsteel.com/heack/archive/2009/02/08/253803.htmlhttp://www.aygfsteel.com/heack/comments/253803.htmlhttp://www.aygfsteel.com/heack/archive/2009/02/08/253803.html#Feedback0http://www.aygfsteel.com/heack/comments/commentRss/253803.htmlhttp://www.aygfsteel.com/heack/services/trackbacks/253803.html阅读全文

孔阳 2009-02-08 19:03 发表评论
]]>
վ֩ģ壺 | ˳| ͭ| | | ͨμ| ʯׯ| Դ| Ϫ| «Ϫ| | | Դ| | ¡| IJ| ɽ| | ױ| ƽ| | | | | | | ʡ| Ԫ| | İ| | Դ| ͨ| | | | | | | | Ρɽ|