需要Prototype设计模式?

到底什么时候我们会选择原型设计模式? 我从各种资源中了解到的是,当我们使用新的操作符或者当我们想要对象的运行时初始化时发现实例化类时使用该模式。 那么,我们究竟能够使用new运算符来定义一个类的实例化成本呢? 当类定义包含太多的字段,并且以后很少会改变?

为每个新游戏设置的所有玩家实例化一个棋盘将会太昂贵,无法使用新运算符实例化?

有人可以通过相同的光线?


确实Prototype模式与OOP没有多大关系。 即它只是一个解决方法来提高性能(特别是在Java中)。 这个想法是,当你看到使用new 直接创建对象代价很高时,只需克隆 现有对象而不是新创建。

你可能在这里提出的一个问题是,它们是指那里的同一个对象(同一个内存),还是它们不同? 事实上,他们之后是2个独立的对象(记忆)。 只有创建第二个对象才能克隆第一个对象。 此后他们是不同的实体。

到底什么时候我们会选择原型设计模式?

如上所述,如果您认为直接创作需要很多时间。 即昂贵的操作在那里(例如:db访问等)。 而且你认为克隆将会更便宜,并且不会损害业务逻辑。 即创建时的克隆属性不会成为问题。

---------关于棋盘问题----------

是的,你确实可以在那里应用原型模式。

  • 在您的应用程序开始时,您可以初始化棋盘实例。
  • 每当玩家想要开始一个新游戏时,您都可以使用该实例克隆并制作一个新游戏。
  • 在那里,因为你在应用程序的开始时创建一个并将其保存在内存中,所以内存使用量会增加。
  • 但是,由于您在每一款新游戏中都克隆,您可以节省处理时间。
  • 所以基本上它是一种使用额外内存而不是处理时间来提高性能的方式。
  • 链接地址: http://www.djcxy.com/p/26931.html

    上一篇: Need of Prototype design pattern?

    下一篇: Alert dialog closed while rotating the screen