美文网首页java设计模式笔记
设计模式五--原型模式

设计模式五--原型模式

作者: 朽木亦自雕 | 来源:发表于2018-09-26 20:19 被阅读17次

定义

用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象

原型模式角色

java中内置克隆机制(Object.clone()方法),想要一个类支持克隆,只需要实现Coneable接口,并且重写clone方法

1:客户角色(Client)
该角色提出创建对象的请求

public class Client{
  public void operation(Prototype example){
    Prototype p = example.clone();
  }
}

2:抽象原型角色(Prototype)
该角色是一个抽象角色,实现给出所有具体原型类所需的接口

public interface Prototype extends  Cloneable{
  //克隆方法
  Prototype clone();
}

3:具体原型(ConcretePrototype)
该角色是被复制的对象,必须实现抽象原型接口

public class ConcretePrototype implements Prototype{
  public Prototype clone(){
    try{
      return (Prototype) super.clone();  
    }catch(Exception e){
      e.printStackTrace();
      return null;
    }
  }
}

优点

1:性能优良,二进制复制性能优于new一个新对象
2:可以逃避构造函数的约束,直接在内存中复制

使用场景

1:资源优化场景,类初始化的时候加载的资源
2:性能和安全优化的场景,new对象会产生非常繁琐的数据准备或者访问权限
3:一个对象多个修改者的使用场景
实际项目中,一般原型模式配合工厂模式,clone一个对象然后由工厂方法提供给调用者

参考资料:设计模式之禅(二)

相关文章

  • 常用开源框架中设计模式使用分析-原型设计模式(Prototype

    五、原型设计模式(Prototype Pattern) 5.1 介绍 相比单例设计模式,原型模式是每次创建一个对象...

  • JavaJavascript基础进阶(十七)JS中常用的设计模式

    单利设计模式、构造原型设计模式、发布订阅设计模式、promise设计模式 单利模式 构造原型设计模式 最贴近OOP...

  • Java 十一种设计模式深入理解

    目录一、工厂设计模式二、抽象工厂模式三、单例设计模式四、建造者(Builder)模式五、原型模式六、适配器设计模式...

  • Spring 准备内容

    准备内容 原型设计模式 PropotypeModle 原型模式也属于创造型设计模式,用原型实例指定创建对象的种类,...

  • 设计模式(创建型模式)

    设计模式简述 创建型模式(共五种): 工厂方法模式、 抽象工厂模式、 单例模式、 建造者模式、 原型模式. 结构型...

  • Android常用设计模式有哪些?

    Android常用设计模式有哪些? 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式...

  • 设计模式

    1、设计模式分类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,...

  • 设计模式问答(一)

    设计模式问答(一) 什么是设计模式?您能说出工厂模式、抽象工厂模式、创建者模式、原型模式、原型模式的潜复制及深复制...

  • 2018-11-05iOS&二十三种设计模式&快速记忆

    二十三种设计模式,分为三大类:一、创建型设计模式,共五种:单例模式、工厂方法模式、抽象工厂模式、建造者模式、原型模...

  • 原型和原型链篇

    原型和原型链 1.理解原型设计模式以及JavaScript中的原型规则 原型设计模式JavaScript是一种基于...

网友评论

    本文标题:设计模式五--原型模式

    本文链接:https://www.haomeiwen.com/subject/wyqdoftx.html