设计模式之 prototype和singleton

先说singleton,就是无论怎么调函数,其实返回得都是同一个对象。这个相对来说比较简单,至于有什么作用吗?要看应用了。不如数据库连接一般就给你一个连接,管你上面供几个对象同时使用。无需多说。

在实现上,要注意了,用接口怎么返回子类对象?我一般用一个API,而不是类函数来做这个,这就不是面向对象了,考虑考虑JAVA吧。

通过类似注册表,create()--->read type from registry 来创建不同子类...够可以的....

 

现在说说这个比较少见的proto type,为啥有这个玩意? 注意我们前面的内容,基本上是一种product,对应一种factory。而product是必须的多样,因为用户其实用的是这个,我才不管你的factory,管你是怎么创造出来的呢。

以前的方法搞得很麻烦,就是一个product 对应一个factory,导致factory很多。咋办?我不想要这么多factory(或者不允许创建factory)。这种东西还是要结合别的模式来共同使用。

1 注意,实现可以很复杂,但是client端应该尽量简单

2 一个factory,通过不同的prototype来完成创建不同产品的功能。

3 在这种说明方式下,很难体现proto type的作用。

假如把,我有一个wrapper,这个wrapper包装一个product。那么我的wrapper可能会内部保存这个product的一份拷贝。

也就是说我自己内部要创建这个product,而又不想用factory,那么只能从当前这个product-clone出来了。

[还是没太说明白prototype的作用....再想想]

看来,不同的wrapper需要定制不同product来初始化,而我想要从wrapper中得到product的时候,直接由它内部的clone出来就可以了,这样只有一个wrapper类,减少了工厂类。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值