首页 »Java教程 » 面向对象设计模式:设计模式-对象创建型模式-原型 »正文
面向对象设计模式:设计模式-对象创建型模式-原型
来源: 发布时间:星期五, 2008年12月19日 浏览:2次 评论:0
适合场合: 1. 当要例子化 ![](/icons/2730de.gif) 类是在运行时刻指定时 ![](/icons/2730dou.gif) 例如 ![](/icons/2730dou.gif) 通过动态装载; 2. 为了避免创建 ![](/icons/2730yi.gif) 个和产品类层次平行 ![](/icons/2730de.gif) 工厂类层次时; 3. 当 ![](/icons/2730yi.gif) 个类 ![](/icons/2730de.gif) 例子只能有几个区别状态组合中 ![](/icons/2730de.gif) ![](/icons/2730yi.gif) 种时 ![](/icons/2730dou2.gif) 建立相应数目 ![](/icons/2730de.gif) 原型并克隆它们可能比每次用合适 ![](/icons/2730de.gif) 状态手工例子化该类更方便 ![](/icons/2730yi.gif) 些 ![](/icons/2730dou2.gif)
java 代码
=dp-j>
=alt> =keyword>package created;
=""> =comment>/* @author hexiong
=alt> =comment> * 3rd object-created-type pattern, builder
=""> =comment> */
=alt> =keyword>abstract =keyword> AbstractPrototype
=""> {
=alt> =keyword>public =keyword>abstract AbstractPrototype cloneYourself ;
=""> }
=alt>
=""> =keyword> MyPrototype =keyword>extends AbstractPrototype
=alt> {
=""> =keyword>public AbstractPrototype cloneYourself
=alt> {
=""> =keyword>try {
=alt> .out.pr ln(= ![](/icons/2730string.gif) >"Myprototype clone." );
=""> =keyword> (AbstractPrototype)=keyword>this .clone ;
=alt> } =keyword>catch (CloneNotSupportedException e) {
=""> =keyword> =keyword>null ;
=alt> }
=""> }
=alt> }
="">
=alt> =keyword> YourPrototype =keyword>extends AbstractPrototype
=""> {
=alt> =keyword>public AbstractPrototype cloneYourself
=""> {
=alt> =keyword>try {
=""> .out.pr ln(= ![](/icons/2730string.gif) >"Yourprototype clone." );
=alt> =keyword> (AbstractPrototype)=keyword>this .clone ;
=""> } =keyword>catch (CloneNotSupportedException e) {
=alt> =keyword> =keyword>null ;
=""> }
=alt> }
=""> }
=alt>
=""> =keyword> PrototypeSetting
=alt> {
=""> =keyword>private AbstractPrototype prototype_;
=alt> =keyword>public =keyword>void Prototype(AbstractPrototype prototype)
=""> {
=alt> prototype_ = prototype;
=""> }
=alt> =keyword>public =keyword>void method1
=""> {
=alt> AbstractPrototype p = prototype_.cloneYourself ;
=""> =comment>// other operation on p.
=alt> }
=""> }
=alt>
=""> =keyword>public =keyword> PrototypeDemo
=alt> {
="">
=alt> =comment>/**
=""> =comment> * @param args
=alt> =comment> */
=""> =keyword>public =keyword> =keyword>void (String args)
=alt> {
=""> =comment>// TODO Auto-generated method stub
=alt> PrototypeSetting p = =keyword> PrototypeSetting ;
=""> p. Prototype(=keyword> MyPrototype );
=alt> p.method1 ;
=""> }
=alt>
=""> }
相关文章
读者评论
发表评论
|
|