java设计模式——原型模式

概述

原型模式是一种创建型模式,允许用户从一个样板实例中复制出一个内部属性一致的对象,俗称为克隆.被复制出来的实例就是我们所称的原型.
多用在创建实例比较复杂或者耗时的情况下,因为复制一个已经存在的实例可以使程序运行更高效.

定义

用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。

使用场景
类初始化需要消化非常多的资源,通过原型拷贝避免这些消耗
通过 new 产生一个对象需要非常繁琐的数据准备或访问权限
一个对象需要提供给其他对象访问,而且各个调用者可能都需要修改其值时,保护原始对象.

UML类图

在这里插入图片描述

  • Client : 客户端用户。

  • Prototype : 抽象类或者接口,声明具备clone能力。

  • ConcretePrototype : 具体的原型类.

原型模式主要用于对象的复制,其原型类(ConcretePrototype)想要被复制,需要满足如下条件

  • 实现Cloneable接口,此接口相当于Prototype角色.

  • 复写 clone方法.并将其包访问权限修改为public的.

Object中的clone 方法是受保护的,如果一个类实现了Cloneable接口,clone方法就会返回改对象的逐域拷贝,否则会抛出CloneNotSupportedException异常

Cloneable接口中没有任何方法,它仅仅是一个标记接口,只有实现此接口的对象才能被拷贝。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值