Prototype(原型)模式

1. 通过对现有的对象的复制来实现新对象的创建

2. 组成

  • 客户角色: 客户类提出创建对象的请求 (如下图的 PrototypePatternDemo)
  • 抽象原型角色: 通常有Java接口(Cloneable )或者java 抽象类实现。给出所有的具体原型类需要的接口 (如下图的 shape)
  • 具体原型角色: 被复制的对象。西角色需要实现抽象的原型角色所要求的接口。 (如下图的 circle. Rectangle, square)

3. 场景理解

我们将创建一个抽象类 Shape 和扩展了 Shape 类的实体类。下一步是定义类 ShapeCache,该类把 shape 对象存储在一个 Hashtable 中,并在请求的时候返回它们的克隆。

PrototypePatternDemo,我们的演示类使用 ShapeCache 类来获取 Shape 对象。

原型模式的 UML 图

4. 应用

Spring默认的Bean的scope

1、默认的值是singleton(単例),spring容器只会创建一个相应的bean实例,所有的对该bean的请求,spring容器都只返回这个实例。
2、还可取值proptotype(原型) ,每次请求都会获得新的bean实例。(利用了原型模式原理)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值