【问题标题】:Is clone method an example of Prototype pattern in Java?克隆方法是 Java 中原型模式的一个例子吗?
【发布时间】:2015-04-29 22:20:54
【问题描述】:
  • 如果有人问我Java中原型模式的例子是什么 已经在 J​​ava API 中实现了,我可以说 clone() 方法吗 ?
  • 我觉得 clone() 方法本身并不能体现原型模式, 它只是实现原型模式的一种手段。我对吗 ?
  • 虽然 stackoverflow 上的一些答案说 clone() 方法是 Java 中的原型模式示例,例如 Examples of GoF Design Patterns in Java's core libraries 他们是对的吗?

【问题讨论】:

标签: java design-patterns prototype-pattern


【解决方案1】:

克隆本质上是原型模式的一种实现,但它并没有真正触及您使用该模式的核心。想象一下,你要买一辆新车,然后你去找经销商,她问你:

  • 你想要什么颜色的?
  • 您想要哪个轮子?
  • 织物或皮革座椅?
  • 您想要加热座椅吗?
  • 要空调吗?

现在假设您是一家大公司的车队经理;你想为你买的每一辆车都经历这个吗?选择第一辆车的详细信息,然后告诉经销商“再给我 100 辆这样的车”会更容易。

这基本上是原型模式 - 它为您提供了一种简单的方法来创建最初设置复杂的对象,只需复制您已经配置的对象。

clone() 方法可以为您做到这一点,但只有当您出于上述原因使用它时,您才真正使用原型模式。

【讨论】:

    【解决方案2】:

    1) 不是真的。

    2) 它是由一个需要它的类来实现的,并不是真正适用于它的一般格式的每种类型的对象。

    因此,对于您的情况,答案是否定的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-26
      • 2013-03-25
      • 1970-01-01
      • 1970-01-01
      • 2013-04-01
      • 2012-02-13
      • 1970-01-01
      相关资源
      最近更新 更多