问答详情
源自:10-1 [php]原型模式

原型模式是clone 一个原型,那为什么不用单例模式呢? 这样也很省资源啊~

原型模式是clone 一个原型,那为什么不用单例模式呢? 这样也很省资源啊~

提问者:慕沐7805018 2018-10-26 19:16

个回答

  • 大年糕
    2022-03-26 22:04:43

    clone 不仅仅是克隆一个对象, 而是把对象的初始化属性也克隆了, 而单例模式只是 防止重复实例化对象.

  • 年糕大侠
    2019-06-20 17:13:19

    两幅画,两幅图,如果用单例的话,这个数据$data应该是静态共享的,效果应该就是先画了图1,然后======,画图2的时候,是以图1中的$data数据为基础来留空白的,这样图2的效果就成了,一块画布,两个矩形重叠的样子。

  • 趣事有趣
    2019-01-13 12:58:01

    单例模式比较常见是到创建一个实例化对象,但是原型模式还带有一系列的初始化操作。

  • 柳源居士
    2019-01-08 23:33:09

    单例模式是整个程序中某个类只存在一个对象,所有对该对象的改动都会被引用。很显然,作用跟原型模式是不一样的,虽然单例模式最省内存。原型模式可以创建出来某个对象的N个实例,只是创建的方法用clone而不是new,省去了初始化过程的大量开销。所以,原型模式与单例模式的作用与场景都是不同的。

  • 一抹淡季
    2018-10-28 23:18:14

    原型模型使用的场景是,创建新对象成本较大时可以利用已有的对象进行复制来获得,从而降低创建对象的代价,原型模式隐藏了创建对象的复杂性。只需要知道要创建对象的类型,然后通过请求就可以获得和该对象一模一样的新对象,无须知道具体的创建过程。使用的目的是创建新对象,而不是获取同一个对象实例,而且可以进行浅拷贝和深拷贝,单例模式创建的对象都是同一个,该模式只创建了一个对象,而不能创建新的对象。