<%@ page contentType="text/html; charset=gb2312"%> 设计模式-对象创建型模式-原型
网站公告:   ◆北天JAVA技术网热情为java爱好者服务,本网内容包括JAVA(JSP、servlet、EJB、webservice、j2ee、javabean、应用服务器、JavaScript),数据库(MYSQL、SQL Server、Sybase、Oracle、DB2、数据库综合知识),设计研究(设计模式、Struts、Spring、Hibernate、设计框架、设计综合知识),WEB2.0新技术(主要介绍AJAX),以及各种技术的入门、实例、例子等等,欢迎各位多来坐坐!◆  诚邀各位JAVA爱好者加盟!◆  本网站内容丰富,更新快,保证每周20篇以上!  
加入收藏
设为首页
联系站长
承接项目
  相关资源:网站首页 | 免费培训学院 | 技术论坛 | JAVA聊天室 | 作家专栏 | 开发工具 | 认证考试 | 会员俱乐部
  JAVA技术初学者园地 | jsp与servlet | javascript | Java源代码 | EJB | web service | 应用服务器 | JAVA综合知识
  设计研究设计模式 | 设计框架 | Struts | Spring | Hibernate | 开源项目 | 面向对象设计 | 设计综合知识
  数 据 库MYSQL | SQL Server | Sybase | Oracle | DB2 | Informix | Access | 数据库综合知识
  其他资源:AJAX新技术 | 网站开发 | ERP软件 | OA办公软件 | 商业智能BI | 开发综合知识 | 承接项目 | 项目试用

 
 
设计模式-对象创建型模式-原型
     发布者: 发布时间:2008-03-12
适合场合:
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. }   


(转载文章请保留出处:北天JAVA技术网(www.java114.com))
 
更多精彩文章:
设计模式之Adapter
设计模式:广告管理系统的UML分析与设计
J2ME手机游戏:Canvas类基本绘图实例
jsp中动作的使用
jsp中动作的使用
XML安全相关
 
        
标 题:   
内 容:   
 
                                  
 
免责声明:该文章由网友发表,如果对您造成侵权,请联系站长

首页 - 承接项目 - 网站地图 - 联系我们 -
版权所有北天JAVA技术工作室 ICP证号:粤ICP备06079815号