<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>MVC其实是Marvel vs. Capcom</title>
    <description>http://qqzhenyi.blogspot.com/</description>
    <link>http://qqzhenyi.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
      <item>
        <title>新加坡 IT生 的程度</title>
        <author>qqzhenyi</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://qqzhenyi.javaeye.com">qqzhenyi</a>&nbsp;
          链接：<a href="http://qqzhenyi.javaeye.com/blog/221949" style="color:red;">http://qqzhenyi.javaeye.com/blog/221949</a>&nbsp;
          发表时间: 2008年07月31日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p><span style="color: #808080;">(先抱个歉, 我的华文真的不好)</span><br />新加坡这里的教育制度是中学4年, 学院2/3年, 然后大学3/4年<br /><br />讲讲 新加坡理工学院 里面的情况. 我不懂其他系怎么样, 不过IT的水准真的 很.糟.糕.<br />学校教的东西主要有:</p>
<ol>
<li>编程, 主要是vb.net, 还有一点点java <span style="color: #808080;">(还有什么什么visual studio for office的东东, Orz)</span></li>
<li>有数据结构和算法的课, 数据结构只教linked list, 算法只教sorting, 而且还是O(n^2)的那种, 因为据说quicksort "太难"</li>
<li>画UML, 其实是"照着"书上的图, 在Rational Rose里面搞搞 <span style="color: #808080;">(还有一点点理论课)</span></li>
<li>网页开发, 用jsp和asp.net <span style="color: #808080;">(其实就是vb)</span>. 学怎么从左边的panel拉button出来, 然后double-click and code</li>
<li>教flash, 不教actionscript</li>
</ol>
<p>... ...<br />有兴趣的可以看看<a href="http://sp.edu.sg/SPweb/appmanager/home/default?_nfpb=true&amp;linkNode=/BEA%20Repository/FutureStudent/Courses/MediaInfoCommTechnology/FullTime/DiplomaInInformationTechnology/WhatYouWillStudy&amp;T9401917971145843260487_actionOverride=/cmsTools/extension/content/main/link&amp;_windowLabel=T9401917971145843260487&amp;_pageLabel=SP_FS_Courses_MIT_FT_IT">这里</a><br /><br />然后学生还会认为: 这些东西太难了-_-. 作业拼命延期他们还是做不完 <span style="color: #808080;">(或者不会做)</span><br /><span style="color: #808080;">(而且作业有越来越简单的趋势. 比如说, 80% 的代码都可以在笔记/课本里面找到)</span><br />跟他们一起做group assignment, 写出来的代码根本就是spaghetti, 最后还是要自己重新写过<br /><span style="color: #808080;">(有时候会庆幸学校不教他们 goto...)</span><br />那么他们平时都做什么? 逛街啦, 看电影啦, 唱K啦, 打Game啦, 旅行啦...<br /><br />总之就是很恐怖很恐怖很恐怖...</p>
          <br/>
          <span style="color:red;">
            <a href="http://qqzhenyi.javaeye.com/blog/221949#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 31 Jul 2008 00:52:19 +0800</pubDate>
        <link>http://qqzhenyi.javaeye.com/blog/221949</link>
        <guid>http://qqzhenyi.javaeye.com/blog/221949</guid>
      </item>
      <item>
        <title>getRandomNumber</title>
        <author>qqzhenyi</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://qqzhenyi.javaeye.com">qqzhenyi</a>&nbsp;
          链接：<a href="http://qqzhenyi.javaeye.com/blog/148707" style="color:red;">http://qqzhenyi.javaeye.com/blog/148707</a>&nbsp;
          发表时间: 2007年12月16日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <div class="code_title">java 代码</div>
<div class="dp-highlighter">
<div class="bar">&nbsp;</div>
<ol class="dp-j" start="1">
    <li class="alt"><span><span class="keyword">int</span><span>&nbsp;getRandomNumber(){&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp; <span class="keyword">return</span><span>&nbsp;</span><span class="number">3</span><span>;</span></span><span> <span class="comment">//掷骰子得到的结果，保证随机。</span><span><br />
    </span></span></li>
    <li class=""><span>}&nbsp; <br />
    </span></li>
</ol>
</div>
          <br/>
          <span style="color:red;">
            <a href="http://qqzhenyi.javaeye.com/blog/148707#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sun, 16 Dec 2007 18:56:16 +0800</pubDate>
        <link>http://qqzhenyi.javaeye.com/blog/148707</link>
        <guid>http://qqzhenyi.javaeye.com/blog/148707</guid>
      </item>
      <item>
        <title>十诫：Web Designer</title>
        <author>qqzhenyi</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://qqzhenyi.javaeye.com">qqzhenyi</a>&nbsp;
          链接：<a href="http://qqzhenyi.javaeye.com/blog/143830" style="color:red;">http://qqzhenyi.javaeye.com/blog/143830</a>&nbsp;
          发表时间: 2007年11月26日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          原文在这里：http://www.wakeuplater.com/freelance-lessons/10-absolute-nos-for-freelancers.aspx<br />下次看到这些问题请记得说：NO!<br /><br />   1. 你能不能够先做一个example让我们看看？<br />      你做了，就是浪费时间。<br />   2. 你能不能够给我们折扣？<br />      如果有人不明白为什么设计网站一个小时要20块，他就不是你的顾客。<br />   3. 你能不能够帮我们host网站？<br />      不要惹上不必要的麻烦，不要抗上不必要的责任。<br />   4. 你能不能够帮我copy这个网站？<br />      抱歉我怕被抓，而且我不想做复制网站的机器人。<br />   5. 你能不能够帮我做个网路商店？<br />      99%的人没有计划，以为在网上卖T-Shirt可以成为下个比尔盖茨。<br />   6. 我有个好点子，你要不要...？<br />      好啊，一个小时一百万，请先付钱。<br />   7. 你有没有QQ/MSN/Yahoo/Skype/GTalk？<br />      我需要一些个人隐私。<br />   8. 我可不可以等到整个网站做好了才给钱？<br />      谁知道你会不会半路跟我说：啊，我不要这个网站了。<br />   9. 你可不可以在这个星期六把我的网站做好？<br />      有第一次就有第二次第三次第四次，以后你的每个星期六都会在做网站了。<br />  10. 你会不会把帮我设计的这些东西用在其他地方？YES!!<br />      这个比较复杂，不过这些都是我的知识产权。
          <br/>
          <span style="color:red;">
            <a href="http://qqzhenyi.javaeye.com/blog/143830#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Mon, 26 Nov 2007 21:50:25 +0800</pubDate>
        <link>http://qqzhenyi.javaeye.com/blog/143830</link>
        <guid>http://qqzhenyi.javaeye.com/blog/143830</guid>
      </item>
      <item>
        <title>Linux: alias</title>
        <author>qqzhenyi</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://qqzhenyi.javaeye.com">qqzhenyi</a>&nbsp;
          链接：<a href="http://qqzhenyi.javaeye.com/blog/125653" style="color:red;">http://qqzhenyi.javaeye.com/blog/125653</a>&nbsp;
          发表时间: 2007年09月20日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <ol>
    <li style="font-family: 'Courier New',Courier,monospace; color: black; font-weight: normal; font-style: normal;">
    <div style="font-family: 'Courier New',Courier,monospace; font-weight: normal;"><span style="color: rgb(0, 0, 102);">alias</span> sex <span style="color: rgb(255, 0, 0);">&quot;updatedb; locate; talk; date; cd; strip; look; touch; finger; unzip; uptime; gawk; head; apt-get install condom; mount; fsck; gasp; more; yes; yes; yes; more; umount; apt-get remove &ndash;purge condom; make clean; sleep&quot;</span></div>
    </li>
</ol>
          <br/>
          <span style="color:red;">
            <a href="http://qqzhenyi.javaeye.com/blog/125653#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 20 Sep 2007 15:07:37 +0800</pubDate>
        <link>http://qqzhenyi.javaeye.com/blog/125653</link>
        <guid>http://qqzhenyi.javaeye.com/blog/125653</guid>
      </item>
      <item>
        <title>Bugs in the code</title>
        <author>qqzhenyi</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://qqzhenyi.javaeye.com">qqzhenyi</a>&nbsp;
          链接：<a href="http://qqzhenyi.javaeye.com/blog/123924" style="color:red;">http://qqzhenyi.javaeye.com/blog/123924</a>&nbsp;
          发表时间: 2007年09月14日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          99 little bugs in the code<br />
bugs in the code<br />
bugs in the code<br />
<br />
fix one bug<br />
run it again<br />
100 little bugs in the code
          <br/>
          <span style="color:red;">
            <a href="http://qqzhenyi.javaeye.com/blog/123924#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 14 Sep 2007 19:51:32 +0800</pubDate>
        <link>http://qqzhenyi.javaeye.com/blog/123924</link>
        <guid>http://qqzhenyi.javaeye.com/blog/123924</guid>
      </item>
      <item>
        <title>The easy way to set up Ubuntu!</title>
        <author>qqzhenyi</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://qqzhenyi.javaeye.com">qqzhenyi</a>&nbsp;
          链接：<a href="http://qqzhenyi.javaeye.com/blog/116580" style="color:red;">http://qqzhenyi.javaeye.com/blog/116580</a>&nbsp;
          发表时间: 2007年08月25日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <ol>
    <li>Go to <a href="http://www.google.com/ncr">Google.com</a></li>
    <li>In browser address bar paste :</li>
    <li>
    <div class="dp-highlighter">
    <div class="bar">&nbsp;</div>
    <ol class="dp-c" start="1">
        <li class="alt"><span><span>javascript:</span><span class="keyword">var</span><span>&nbsp;i=-1;</span><span class="keyword">function</span><span>&nbsp;de(){i=i+1;document.images[i].src=</span><span class="string">&quot;http://www.ubuntu.com/themes/ubuntu07/images/ubuntulogo.png&quot;</span><span>;};&nbsp;</span><span class="keyword">void</span><span>(setInterval(de,1));&nbsp;&nbsp;</span></span></li>
    </ol>
    </div>
    </li>
    <li>You are now using Ubuntu! </li>
</ol>
          <br/>
          <span style="color:red;">
            <a href="http://qqzhenyi.javaeye.com/blog/116580#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 25 Aug 2007 08:33:23 +0800</pubDate>
        <link>http://qqzhenyi.javaeye.com/blog/116580</link>
        <guid>http://qqzhenyi.javaeye.com/blog/116580</guid>
      </item>
      <item>
        <title>Hello World (Just for fun)</title>
        <author>qqzhenyi</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://qqzhenyi.javaeye.com">qqzhenyi</a>&nbsp;
          链接：<a href="http://qqzhenyi.javaeye.com/blog/116574" style="color:red;">http://qqzhenyi.javaeye.com/blog/116574</a>&nbsp;
          发表时间: 2007年08月25日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          Below is a short Hello World programming example which shows Java's ease of use compared to other programming languages:
<div class="dp-highlighter">
<div class="bar">&nbsp;</div>
<ol class="dp-j" start="1">
    <li class="alt"><span><span class="keyword">import</span><span>&nbsp;java.lib.futile.packages.futilities.HelloWorldStream;&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">class</span><span>&nbsp;HelloWorldExample&nbsp;</span><span class="keyword">extends</span><span>&nbsp;AbstractHelloWorldModel&nbsp;</span><span class="keyword">implements</span><span>&nbsp;HelloWorldHandler&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">public</span><span>&nbsp;</span><span class="keyword">static</span><span>&nbsp;</span><span class="keyword">final</span><span>&nbsp;nonreversible&nbsp;taxfree&nbsp;nondenominational&nbsp;</span><span class="keyword">void</span><span>&nbsp;main(String[]&nbsp;arrrgh!!!)&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HelloWorldStream&nbsp;hs&nbsp;=&nbsp;System.getStandardHelloWorldStream(System.getProperty(<span class="string">&quot;Hello_World_Utility&quot;</span><span>));&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HelloWorldWriter&nbsp;hw&nbsp;=&nbsp;<span class="keyword">new</span><span>&nbsp;HelloWorldWriter(hs);&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hw.initStandardizedHelloWorldModuleAdapterClass();&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hw.println(newGString(newCmdLineProcessing(newCmdLineText(processHelloWorldRequest(<span class="keyword">new</span><span>&nbsp;HelloWorldGenerator()))));&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">private</span><span>&nbsp;erotic&nbsp;diet&nbsp;GString&nbsp;processHelloWorldRequest(HelloWorldGenerator&nbsp;hwg)&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>&nbsp;(hwg.getAndExtractNonWriteableCopyOfAwesomeFactor()&nbsp;&lt;&nbsp;HelloWorld.HELLOWORLD)&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">throw</span><span>&nbsp;</span><span class="keyword">new</span><span>&nbsp;Bone();&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HelloWorldModel&nbsp;h&nbsp;=&nbsp;hwg.formulateStandardHelloWorldObject();&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">return</span><span>&nbsp;h.getDefaultHelloWorldContext().getHelloListener().createHelloWorldString();&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li class=""><span>}&nbsp;&nbsp;</span></li>
</ol>
</div>
<br />
Here, other variation of HelloWorld program with using some patterns to enable loose coupling:
<div class="dp-highlighter">
<div class="bar">&nbsp;</div>
<ol class="dp-j" start="1">
    <li class="alt"><span><span class="keyword">interface</span><span>&nbsp;Printer&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">void</span><span>&nbsp;print(Message&nbsp;message);&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>}&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="keyword">class</span><span>&nbsp;Message&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">private</span><span>&nbsp;String&nbsp;message;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">public</span><span>&nbsp;Message(String&nbsp;message)&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">this</span><span>.message&nbsp;=&nbsp;message;&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">public</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;print(Printer&nbsp;printer)&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printer.print(<span class="keyword">this</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">public</span><span>&nbsp;String&nbsp;toString()&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">return</span><span>&nbsp;message;&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li class="alt"><span>}&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="keyword">abstract</span><span>&nbsp;</span><span class="keyword">class</span><span>&nbsp;AbstractPrinterFactory&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">public</span><span>&nbsp;</span><span class="keyword">static</span><span>&nbsp;AbstractPrinterFactory&nbsp;getFactory()&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">return</span><span>&nbsp;</span><span class="keyword">new</span><span>&nbsp;SystemOutPrinterFactory();&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">public</span><span>&nbsp;</span><span class="keyword">abstract</span><span>&nbsp;Printer&nbsp;getPrinter();&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>}&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="keyword">class</span><span>&nbsp;SystemOutPrinterFactory&nbsp;</span><span class="keyword">extends</span><span>&nbsp;AbstractPrinterFactory&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">public</span><span>&nbsp;Printer&nbsp;getPrinter()&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">return</span><span>&nbsp;</span><span class="keyword">new</span><span>&nbsp;SystemOutPrinter();&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li class="alt"><span>}&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="keyword">class</span><span>&nbsp;SystemOutPrinter&nbsp;</span><span class="keyword">implements</span><span>&nbsp;Printer&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">public</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;print(Message&nbsp;message)&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.out.println(message);&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li class="alt"><span>}&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="keyword">class</span><span>&nbsp;HelloWorld&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">public</span><span>&nbsp;</span><span class="keyword">static</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;main(String[]&nbsp;args)&nbsp;{&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Message&nbsp;message&nbsp;=&nbsp;<span class="keyword">new</span><span>&nbsp;Message(</span><span class="string">&quot;Hello,&nbsp;World!&quot;</span><span>);&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AbstractPrinterFactory&nbsp;factory&nbsp;=&nbsp;AbstractPrinterFactory.getFactory();&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Printer&nbsp;printer&nbsp;=&nbsp;factory.getPrinter();&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;message.print(printer);&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li class=""><span>}&nbsp;&nbsp;</span></li>
</ol>
</div>
<br />
Here is the same program in Python:
<div class="dp-highlighter">
<div class="bar">&nbsp;</div>
<ol class="dp-py" start="1">
    <li class="alt"><span><span class="keyword">print</span><span>&nbsp;&quot;Hello,&nbsp;World!&quot;&nbsp;&nbsp;</span></span></li>
</ol>
</div>
<br />
Here is the same program in C:
<div class="dp-highlighter">
<div class="bar">&nbsp;</div>
<ol class="dp-cpp" start="1">
    <li class="alt"><span><span>printf(</span><span class="string">&quot;Hello,&nbsp;World!\n&quot;</span><span>);&nbsp;&nbsp;</span></span></li>
</ol>
</div>
<br />
Here is the same program in C++:
<div class="dp-highlighter">
<div class="bar">&nbsp;</div>
<ol class="dp-cpp" start="1">
    <li class="alt"><span><span>cout&nbsp;&lt;&lt;&nbsp;</span><span class="string">&quot;Hello,&nbsp;world!&quot;</span><span>;&nbsp;&nbsp;</span></span></li>
</ol>
</div>
<br />
Here is the same program in Cocoa:
<div class="dp-highlighter">
<div class="bar">&nbsp;</div>
<ol class="dp-c" start="1">
    <li class="alt"><span><span>NSLog(@</span><span class="string">&quot;Hello,&nbsp;World!\n&quot;</span><span>);&nbsp;&nbsp;</span></span></li>
</ol>
</div>
<br />
Here is the same program in Ksh:
<div class="dp-highlighter">
<div class="bar">&nbsp;</div>
<ol class="dp-rb" start="1">
    <li class="alt"><span><span>echo&nbsp;</span><span class="string">&quot;Hello,&nbsp;World!&quot;</span><span>&nbsp;&nbsp;</span></span></li>
</ol>
</div>
<br />
Here is the same program in Lua:
<div class="dp-highlighter">
<div class="bar">&nbsp;</div>
<ol class="dp-c" start="1">
    <li class="alt"><span><span>print(</span><span class="string">&quot;Hello,&nbsp;World!&quot;</span><span>)&nbsp;&nbsp;</span></span></li>
</ol>
</div>
<br />
Here is the same program in Ruby:
<div class="dp-highlighter">
<div class="bar">&nbsp;</div>
<ol class="dp-rb" start="1">
    <li class="alt"><span><span>puts&nbsp;</span><span class="string">&quot;Hello,&nbsp;World!&quot;</span><span>&nbsp;&nbsp;</span></span></li>
</ol>
</div>
<br />
Here is the same program in Perl:
<div class="dp-highlighter">
<div class="bar">&nbsp;</div>
<ol class="dp-c" start="1">
    <li class="alt"><span><span>print&nbsp;</span><span class="string">&quot;Hello,&nbsp;World!&quot;</span><span>&nbsp;&nbsp;</span></span></li>
</ol>
</div>
<br />
Here is the same program in JavaScript:
<div class="dp-highlighter">
<div class="bar">&nbsp;</div>
<ol class="dp-c" start="1">
    <li class="alt"><span><span>alert(</span><span class="string">&quot;Hello&nbsp;World!&quot;</span><span>);&nbsp;&nbsp;</span></span></li>
</ol>
</div>
<br />
Here is the same program in QBasic:
<div class="dp-highlighter">
<div class="bar">&nbsp;</div>
<ol class="dp-c" start="1">
    <li class="alt"><span><span>PRINT&nbsp;</span><span class="string">&quot;Hello&nbsp;World!&quot;</span><span>&nbsp;&nbsp;</span></span></li>
</ol>
</div>
<br />
Here is the same program in ASCII:
<div class="dp-highlighter">
<ol class="dp-j" start="1">
    <li class="alt"><span><span>Hello,&nbsp;World!&nbsp;&nbsp;</span></span></li>
</ol>
</div>
<br />
Here is the same program in LifeScript:
<div class="dp-highlighter">
<div class="bar">&nbsp;</div>
<ol class="dp-c" start="1">
    <li class="alt"><span><span>&gt;</span><span class="keyword">function</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;{write&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;writer=<span class="string">&quot;Bill&nbsp;Gates&quot;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;paper=<span class="string">&quot;A4&quot;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;writing=<span class="string">&quot;Hello,&nbsp;World!&quot;</span><span>}&nbsp;&nbsp;</span></span></li>
    <li class=""><span>=write&nbsp;&nbsp;</span></li>
</ol>
</div>
<br />
Here is the same program in 1337:
<div class="dp-highlighter">
<div class="bar">&nbsp;</div>
<ol class="dp-j" start="1">
    <li class="alt"><span><span class="number">1</span><span>-</span><span class="number">13</span><span>|_|_(),&nbsp;\/\/()P\|_[}&nbsp;&nbsp;</span></span></li>
</ol>
</div>
<br />
Here is the same program in French:
<div class="dp-highlighter">
<ol class="dp-j" start="1">
    <li class="alt"><span><span>Bonjour&nbsp;le&nbsp;monde.&nbsp;Vous&nbsp;&ecirc;tes&nbsp;ennuyeux&nbsp;et&nbsp;non&nbsp;raffin&eacute;.&nbsp;&nbsp;</span></span></li>
</ol>
</div>
<br />
Here is the same program in LOGO:
<div class="dp-highlighter">
<div class="bar">&nbsp;</div>
<ol class="dp-rb" start="1">
    <li class="alt"><span><span>to&nbsp;hello&nbsp;&nbsp;</span></span></li>
    <li class=""><span>print&nbsp;[Hello,&nbsp;world!]&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="keyword">end</span><span>&nbsp;&nbsp;</span></span></li>
</ol>
</div>
<br />
Here is the same program in LEGO:<br />
<img src="http://qqzhenyi.javaeye.com/topics/download/4288f422-216f-4265-a359-e183be8571b9" alt="" /><br />
<br />
As you can see, these programs cannot possibly be as efficient as the above Java examples,<em> because there isn't enough code to be efficient <strong>with</strong>.<br />
</em>
          <br/>
          <span style="color:red;">
            <a href="http://qqzhenyi.javaeye.com/blog/116574#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 25 Aug 2007 08:30:00 +0800</pubDate>
        <link>http://qqzhenyi.javaeye.com/blog/116574</link>
        <guid>http://qqzhenyi.javaeye.com/blog/116574</guid>
      </item>
  </channel>
</rss>