*设为首页
*加入收藏
热门关键字: JAVA
>>当前位置:Java大本营>设计模式>文章内容
设计模式-对象创建型模式-原型
作者: 发布时间:2008-01-01 11:32:03
适合场合:
1. 当要实例化的类是在运行时刻指定时,例如,通过动态装载;
2. 为了避免创建一个与产品类层次平行的工厂类层次时;
3. 当一个类的实例只能有几个不同状态组合中的一种时。建立相应数目的原型并克隆它们可能比每次用合适的状态手工实例化该类更方便一些。
java 代码
  1. package created;   
  2. /* @author hexiong  
  3.  * 3rd object-created-type pattern, builder  
  4.  */  
  5. abstract class AbstractPrototype   
  6. {   
  7.      public abstract AbstractPrototype cloneYourself();   
  8. }   
  9.   
  10. class MyPrototype extends AbstractPrototype   
  11. {   
  12.      public AbstractPrototype cloneYourself()      
  13.      {   
  14.          try {   
  15.              System.out.println("Myprototype clone.");   
  16.              return (AbstractPrototype)this.clone();   
  17.          } catch (CloneNotSupportedException e) {   
  18.              return null;   
  19.          }   
  20.      }   
  21. }   
  22.   
  23. class YourPrototype   extends AbstractPrototype   
  24. {   
  25.      public AbstractPrototype cloneYourself()      
  26.      {   
  27.          try {   
  28.              System.out.println("Yourprototype clone.");   
  29.              return (AbstractPrototype)this.clone();   
  30.          } catch (CloneNotSupportedException e) {   
  31.              return null;   
  32.          }   
  33.      }   
  34. }   
  35.   
  36. class PrototypeSetting   
  37. {   
  38.      private AbstractPrototype prototype_;   
  39.      public void setPrototype(AbstractPrototype prototype)   
  40.      {   
  41.          prototype_ = prototype;   
  42.      }   
  43.      public void method1()   
  44.      {   
  45.          AbstractPrototype p = prototype_.cloneYourself();   
  46.          // other operation on p.   
  47.      }   
  48. }   
  49.   
  50. public class PrototypeDemo   
  51. {   
  52.   
  53.      /**  
  54.       * @param args  
  55.       */  
  56.      public static void main(String[] args)   
  57.      {   
  58.          // TODO Auto-generated method stub   
  59.          PrototypeSetting p = new PrototypeSetting();   
  60.          p.setPrototype(new MyPrototype());   
  61.          p.method1();   
  62.      }   
  63.   
  64. }   

·设计模式之Adapter (01-23)
·java设计技巧之不要过分设计 (12-25)
·java设计技巧之不要过分设计 (12-25)
·安装Eclipse3.2.1出现Incompatible JVM(12-17)
·jvm规范:线程,锁和优化 (12-17)
·Tomcat下的JVM优化(12-17)
·JVM的gc详述(12-17)
·Eclipse错误:Version 1.3.1_01 of the(12-17)
·JVM.Heap设置 (12-17)
·在eclipse设置JVM heap 的最小值与最大(12-17)
·谈谈JVM GC的Heap (12-17)
·改变jvm的默认内存(12-17)
复制地址发给您的好友: [推荐文章] [返回顶部] [关闭窗口]
版权所有 Java大本营 1999-2007 转载请注明出处