专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »Java教程 » 面向对象设计模式:设计模式-对象创建型模式-原型 »正文

面向对象设计模式:设计模式-对象创建型模式-原型

来源: 发布时间:星期五, 2008年12月19日 浏览:2次 评论:0
适合场合:
1. 当要例子化类是在运行时刻指定时例如通过动态装载;
2. 为了避免创建个和产品类层次平行工厂类层次时;
3. 当个类例子只能有几个区别状态组合中种时建立相应数目原型并克隆它们可能比每次用合适状态手工例子化该类更方便
java 代码

    =dp-j>
  1. =alt>=keyword>package created;   
  2. ="">=comment>/* @author hexiong  
  3. =alt>=comment> * 3rd object-created-type pattern, builder  
  4. ="">=comment> */  
  5. =alt>=keyword>abstract =keyword> AbstractPrototype   
  6. ="">{   
  7. =alt>     =keyword>public =keyword>abstract AbstractPrototype cloneYourself;   
  8. ="">}   
  9. =alt>  
  10. ="">=keyword> MyPrototype =keyword>extends AbstractPrototype   
  11. =alt>{   
  12. ="">     =keyword>public AbstractPrototype cloneYourself      
  13. =alt>     {   
  14. ="">         =keyword>try {   
  15. =alt>             .out.prln(=>"Myprototype clone.");   
  16. ="">             =keyword> (AbstractPrototype)=keyword>this.clone;   
  17. =alt>         } =keyword>catch (CloneNotSupportedException e) {   
  18. ="">             =keyword> =keyword>null;   
  19. =alt>         }   
  20. ="">     }   
  21. =alt>}   
  22. ="">  
  23. =alt>=keyword> YourPrototype   =keyword>extends AbstractPrototype   
  24. ="">{   
  25. =alt>     =keyword>public AbstractPrototype cloneYourself      
  26. ="">     {   
  27. =alt>         =keyword>try {   
  28. ="">             .out.prln(=>"Yourprototype clone.");   
  29. =alt>             =keyword> (AbstractPrototype)=keyword>this.clone;   
  30. ="">         } =keyword>catch (CloneNotSupportedException e) {   
  31. =alt>             =keyword> =keyword>null;   
  32. ="">         }   
  33. =alt>     }   
  34. ="">}   
  35. =alt>  
  36. ="">=keyword> PrototypeSetting   
  37. =alt>{   
  38. ="">     =keyword>private AbstractPrototype prototype_;   
  39. =alt>     =keyword>public =keyword>void Prototype(AbstractPrototype prototype)   
  40. ="">     {   
  41. =alt>         prototype_ = prototype;   
  42. ="">     }   
  43. =alt>     =keyword>public =keyword>void method1   
  44. ="">     {   
  45. =alt>         AbstractPrototype p = prototype_.cloneYourself;   
  46. ="">         =comment>// other operation on p.   
  47. =alt>     }   
  48. ="">}   
  49. =alt>  
  50. ="">=keyword>public =keyword> PrototypeDemo   
  51. =alt>{   
  52. ="">  
  53. =alt>     =comment>/**  
  54. ="">=comment>      * @param args  
  55. =alt>=comment>      */  
  56. ="">     =keyword>public =keyword> =keyword>void (String args)   
  57. =alt>     {   
  58. ="">         =comment>// TODO Auto-generated method stub   
  59. =alt>         PrototypeSetting p = =keyword> PrototypeSetting;   
  60. ="">         p.Prototype(=keyword> MyPrototype);   
  61. =alt>         p.method1;   
  62. ="">     }   
  63. =alt>  
  64. ="">}   

相关文章

读者评论

  • 共0条 分0页

发表评论

  • 昵称:
  • 内容: