首页 > 代码库 > 设计模式:原型模式
设计模式:原型模式
原文地址:http://leihuang.org/2014/12/03/prototype/
Creational 模式
物件的产生需要消耗系统资源,所以如何有效率的产生、管理 与操作物件,一直都是值得讨论的课题, Creational 模式即与物件的建立相关,在这个分类下的模式给出了一些指导原则及设计的方向。下面列举到的全属于Creational 模式
- Simple Factory 模式
- Abstract Factory 模式
- Builder 模式
- Factory Method 模式
- Prototype 模式
- Singleton 模式
- Registry of Singleton 模式
您从图书馆的期刊从发现了几篇您感兴趣的文章,由于这是图书馆的书,您不可以直接在书中作记号或写字,所以您将当中您所感兴趣的几个主题影印出来,这下子您就可在影印的文章上画记重点。
上面这段情景就是利用了今天要讲的原型设计模式(prototype).
原型模式(prototype)它是指通过给定一个原型对象来指明所要创建的对象类型,然后复制这个原型对象的办法创建出同类型的对象。原型模式也属于创建模式。
原型模型涉及到三个角色:
- 客户角色(client):客户端提出创建对象的请求;
- 抽象原型(prototype):这个往往由接口或者抽象类来担任,给出具体原型类的接口;
- 具体原型(Concrete prototype):实现抽象原型,是被复制的对象;
下面我们就来实现一个原型模式,比如呢,我们用不起mac(Mac接口),怎么办呢,我们仿造一个假的mac(ImitatedMac)出来吗.然后我们程序员(Coder)依然可以使用它.
Mac 接口
public interface Mac extends Cloneable{ public void play() ; public Object clone() ; }
ImitatedMac 实现Mac接口 --假的Mac
public class ImitatedMac implements Mac { @Override public Object clone() { try { return super.clone(); } catch (CloneNotSupportedException e) { e.printStackTrace(); return null ; } } @Override public void play() { System.out.println("哈哈,我是假的!"); } }
Coder 类 --程序员
public class Coder { public static void main(String[] args) { Mac mac = (Mac) new ImitatedMac().clone() ; mac.play(); } }
其实原型模型在java中的使用主要用到了clone方法,大家可以仔细阅读一下这篇博客,有助于理解原型设计模式.
- 详解clone方法
2014-12-04 00:59:12
Brave,Happy,Thanksgiving !
设计模式:原型模式
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。