<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>yy77</title>
    <description></description>
    <link>http://yy77.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>1. 使用静态工厂方法代替构造函数</title>
        <author>yy77</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://yy77.javaeye.com">yy77</a>&nbsp;
          链接：<a href="http://yy77.javaeye.com/blog/211579" style="color:red;">http://yy77.javaeye.com/blog/211579</a>&nbsp;
          发表时间: 2008年07月04日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          在想创建一个对象的时候，尽量使用静态工厂方法（static factory method）来代替构造方法。<br />比如：Boolean b = Boolean.valueOf(true);<br />而非Boolean b = new Boolean(true);<br /><br />好处之一，与构造方法不同，方法是有名字的。在弄一些类似DSL的时候，可能会比较有用。与其要记住很多构造参数的含义，不如用一个命名良好的方法来概括。<br />String.BlankStringWithLen(20)看上去要比new String(" ",20)要友好一些？<br /><br />好处之二，就像各种工厂类一样，在返回常量的情况下，可以不用每次都创建一个新的对象。在空间上比较节省。<br /><br />好处之三，构造方法的返回类型是一定的，即该类本身；而方法可以返回其子类的类型。比如所有的子类都没有public的构造方法，而通过公开父类的一系列静态工厂方法来提供使用的界面。如此一来，使用者将要使用到的类就会少很多，便于保持一个清晰的接口。
          <br/>
          <span style="color:red;">
            <a href="http://yy77.javaeye.com/blog/211579#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/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 04 Jul 2008 15:26:38 +0800</pubDate>
        <link>http://yy77.javaeye.com/blog/211579</link>
        <guid>http://yy77.javaeye.com/blog/211579</guid>
      </item>
  </channel>
</rss>