??xml version="1.0" encoding="utf-8" standalone="yes"?>日韩精品一区二区在线观看,久久久久久久999精品视频,国产精品视频男人的天堂http://www.aygfsteel.com/robot86736711/category/50972.htmlzh-cnTue, 20 Mar 2012 04:54:33 GMTTue, 20 Mar 2012 04:54:33 GMT60单例模式QsingletonQ构建模?/title><link>http://www.aygfsteel.com/robot86736711/articles/371983.html</link><dc:creator>峰</dc:creator><author>峰</author><pubDate>Thu, 15 Mar 2012 15:10:00 GMT</pubDate><guid>http://www.aygfsteel.com/robot86736711/articles/371983.html</guid><wfw:comment>http://www.aygfsteel.com/robot86736711/comments/371983.html</wfw:comment><comments>http://www.aygfsteel.com/robot86736711/articles/371983.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/robot86736711/comments/commentRss/371983.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/robot86736711/services/trackbacks/371983.html</trackback:ping><description><![CDATA[定义<br />    在javaE序中只有一个Class实例对象?br />Z试用<br />    比如cM于连接数据库q样的操作,只需要一个连接对象。这样可以节省内存,也有利于垃圾回收QGCQ?br />    也可以状态化比如说论坛上的访问计数器?br />    也可以做无状态的工具性质的功能?br />例子Q? <p class="MsoNormal"><span style="font-size: 10.5pt" lang="EN-US">public class Singleton { <o:p></o:p></span></p> <p>  <span lang="EN-US">private static Singleton instance = null;<br /><br />  public static synchronized Singleton getInstance() {<br />    <br />  //使用时生成实例,提高了效率!<br />  if (instance==null)<br />    instanceQnew Singleton();<br />  return instance;   } <o:p></o:p></span></p> <p><span lang="EN-US">} <o:p></o:p></span></p><br /> <p>使用<span lang="EN-US">Singleton.getInstance()可以讉K单态类?o:p></o:p></span></p><br />但是值得注意的是在分布式的情况下一定要注意Q不同的对象都去装在单例对象?br /><br /><img src ="http://www.aygfsteel.com/robot86736711/aggbug/371983.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/robot86736711/" target="_blank">峰</a> 2012-03-15 23:10 <a href="http://www.aygfsteel.com/robot86736711/articles/371983.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>建造者模式(builderQ构建模?/title><link>http://www.aygfsteel.com/robot86736711/articles/371980.html</link><dc:creator>峰</dc:creator><author>峰</author><pubDate>Thu, 15 Mar 2012 14:51:00 GMT</pubDate><guid>http://www.aygfsteel.com/robot86736711/articles/371980.html</guid><wfw:comment>http://www.aygfsteel.com/robot86736711/comments/371980.html</wfw:comment><comments>http://www.aygfsteel.com/robot86736711/articles/371980.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/robot86736711/comments/commentRss/371980.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/robot86736711/services/trackbacks/371980.html</trackback:ping><description><![CDATA[定义<br />    一个对象的复杂构徏q程和表C分d<br />含义<br />    是对象的复杂的构E分dQ已辑ֈ解耦过E和部g?br />Z试用<br />    例如你需要加工手机,如果每个型号的手机都有一个加工组装厂Q会不会感觉很多余呀。你只需要徏造一个组装厂卛_Q安装的q程吗肯定都是一L。所以你l我什么型L手机部g我就l你l装什么型L手机。这样将手机的组装和手机的部件有效的分离开减少耦合。而且有利于维护,比如说有一天手机天U不需要外|了Q都已经内置了。那只要告诉l装厂减去装外置天线的哪一步就够了?br /><br />例子:<br /> <p><span lang="EN-US">public interface Builder { <o:p></o:p></span></p> <p>  <span lang="EN-US">//创徏部gA <br />  void buildPartA(); <br />  //创徏部gB <br />  void buildPartB(); <br /><br />  //q回最后组装成品结?br />  //成品的组装过E不在这里进?而是转移C面的DirectorcMq行.<br />  //从而实C解?strong><em>q程</em></strong>?strong><em>部g</em></strong><br />  Product getResult(); <o:p></o:p></span></p> <p><span lang="EN-US">} <br /><br /></p> <p><span lang="EN-US">public class Director {<o:p></o:p></span></p> <p>  <span lang="EN-US">private Builder builder; <o:p></o:p></span></p> <p>  <span lang="EN-US">public Director( Builder builder ) { <br />    this.builder = builder; <br />  } <br />  // 部件partA partB最后组成复杂对?br />  public void construct() { <br />    builder.buildPartA();<br />    builder.buildPartB();<br /></span></p> <p>  <span lang="EN-US">} <o:p></o:p></span></p> <p><span lang="EN-US">}<br /><br /></p> <p><span lang="EN-US">public class ConcreteBuilder implements Builder { <o:p></o:p></span></p> <p>  <span lang="EN-US">Part partA, partB; <br />  public void buildPartA() {<br />    //q里是具体如何构建partA的代?br /><br />  }; <br />  public void buildPartB() { <br />    //q里是具体如何构建partB的代?br />  }; <br />   public Product getResult() { <br />    //q回最后组装成品结?br />  }; <o:p></o:p></span></p> <p><span lang="EN-US">}<br /><br />我们看看如何调用Builder模式:<br />ConcreteBuilder builder = new ConcreteBuilder();<br />Director director = new Director( builder ); <br />director.construct(); <br />Product product = builder.getResult(); <br /><br /><o:p></o:p><o:p></o:p></span></p> <p></span></p> <p><o:p></o:p></span></p><img src ="http://www.aygfsteel.com/robot86736711/aggbug/371980.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/robot86736711/" target="_blank">峰</a> 2012-03-15 22:51 <a href="http://www.aygfsteel.com/robot86736711/articles/371980.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>原型模式QprototypeQ构建模?http://www.aygfsteel.com/robot86736711/articles/371888.htmlWed, 14 Mar 2012 14:48:00 GMThttp://www.aygfsteel.com/robot86736711/articles/371888.htmlhttp://www.aygfsteel.com/robot86736711/comments/371888.htmlhttp://www.aygfsteel.com/robot86736711/articles/371888.html#Feedback0http://www.aygfsteel.com/robot86736711/comments/commentRss/371888.htmlhttp://www.aygfsteel.com/robot86736711/services/trackbacks/371888.html    用原型实例制定穿件对象的cdQƈ拯q个原型来创建对象?br />含义
    一个操作或是一个对象在创徏一个制定的对象的时候,无需知道该对象的创徏q程Q根据所l的原型对象拯出所需的对象?br />使用
    因ؓjava语言中有clone()ҎQ所以实现v来很Ҏ?br />例子

    public abstract class AbstractPrototype implements Cloneable
    {
      String name;

      public void setName(String Name) {this.name = name;}
      public String getName() {return this.name;}

      public Object clone()
      {
        Object object = null;
        try {
          object = super.clone();
        } catch (CloneNotSupportedException exception) {
          System.err.println("AbstractPrototype is not Cloneable");
        }
        return object;
      }
    }


    public class SoupPrototype extends AbstractPrototype
    {
      public SoupPrototype()
      {
        setName("Soup Prototype");
      }
    }


    public class SaladPrototype extends AbstractPrototype
    {
      public SaladPrototype()
      {
        setName("Salad Prototype");
      }
    }


 调用很单了
    AbstractPrototype soup = new SoupPrototype();
    AbstractPrototype salad = new SaladPrototype();
    SoupPrototype soupClone = (SoupPrototype)soup.clone();
    SaladPrototype saladClone = (SaladPrototype)salad.clone();

q两个克隆出来的对象是你想要的?是不是很单呀?br />



2012-03-14 22:48 发表评论
]]>
工厂模式QfactoryQ构建模?/title><link>http://www.aygfsteel.com/robot86736711/articles/371066.html</link><dc:creator>峰</dc:creator><author>峰</author><pubDate>Thu, 01 Mar 2012 03:45:00 GMT</pubDate><guid>http://www.aygfsteel.com/robot86736711/articles/371066.html</guid><wfw:comment>http://www.aygfsteel.com/robot86736711/comments/371066.html</wfw:comment><comments>http://www.aygfsteel.com/robot86736711/articles/371066.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/robot86736711/comments/commentRss/371066.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/robot86736711/services/trackbacks/371066.html</trackback:ping><description><![CDATA[<div>      写东西的能力有限Q希望可以谅解?br /><br />工厂模式<br />      定义Q提供创建对象的接口<br /> Z使用Q如果在一个项目中你需要new很多的实体,恰好q个实体new的过E很是复杂,而且有一天你的PM说在q个new的工E中加一个别的qo吧?br />               你会H然发现你的工作量怎么那么大呢Q如果当时用C工厂你就会发现原来加q个需求是q么的简单。而且在new的过E出现错误的几率?br />               大大的降低了。你的代码也会非常整洁?br />      实例Q(直接上代码,发现弄图片是如此的麻烦!Q?nbsp;<br />        //q只是一个小例子Q会Ҏl出的颜色来l出具体的实?br /> <p>        public class WorkFactory {</p> <p>         public static Work getWork(String color){<br />          return color.equals("black")?new BlackWork():new WhiteWork();<br />         }<br />        }<br /><br />抽象工厂<br />       定义Q如果工厂是生实例的,那抽象工厂就是一个整个工厂的架构没有具体的实?br />  Z使用Q比如h家想用你的工厂,但是你又不想让h家看C工厂里面具体的工作,q且你还要告诉他你工厂可能干什么。这时候你可以给他看你的抽象的工?br />                而不是真正再生的工厂了。而且利于扩展Q比如又让你Z个工厂和上一个在实现上有区别但是q是那几个方法。这样你利用抽象工厂很快可以搭?br />                q另一个工厂了?br />        实例Q?nbsp;       </p> <p>            public abstract class AbstractFactory {</p> <p>             public abstract Work getWork() throws Exception;<br />             public abstract Study getStudy() throws Exception;<br />            }</p> <p> </p></div> <img src ="http://www.aygfsteel.com/robot86736711/aggbug/371066.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/robot86736711/" target="_blank">峰</a> 2012-03-01 11:45 <a href="http://www.aygfsteel.com/robot86736711/articles/371066.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank">ˮ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ƶ</a>| <a href="http://" target="_blank">¡</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">α</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">բ</a>| <a href="http://" target="_blank">ұ</a>| <a href="http://" target="_blank">½</a>| <a href="http://" target="_blank">Ͻ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ݳ</a>| <a href="http://" target="_blank">¡</a>| <a href="http://" target="_blank">Զ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ר</a>| <a href="http://" target="_blank">ƺ</a>| <a href="http://" target="_blank">SHOW</a>| <a href="http://" target="_blank">̩</a>| <a href="http://" target="_blank">ݰ</a>| <a href="http://" target="_blank">Ԫ</a>| <a href="http://" target="_blank">ˮ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ӳ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>