clone方法是Java中Prototype模式的一个例子吗?

时间:2015-02-27 09:04:37

标签: java design-patterns prototype-pattern

  • 如果有人问我Java中的原型模式的例子是什么 已经在Java API中实现了,我可以说是clone()方法 ?
  • 我觉得clone()方法本身并没有举例说明原型模式, 它只是实现原型模式的一种手段。我对吗 ?
  • 虽然stackoverflow上的一些答案说clone()方法是一个 Java中Prototype模式的示例,例如 Examples of GoF Design Patterns in Java's core libraries他们是对的吗?

2 个答案:

答案 0 :(得分:3)

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

  • 你想要什么颜色?
  • 你想要哪种轮子?
  • 布料或真皮座椅?
  • 你想要加热座椅吗?
  • 你想要空调吗?

现在想象一下你是一家大公司的车队经理;你想购买的每辆车都要经历这个吗?选择第一辆车的细节比较容易,然后告诉经销商“给我另外100个这样的”。

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

clone()方法可以为您完成此操作,但只有在您使用原因时才会使用原型模式。

答案 1 :(得分:0)

1)不是真的。

2)它意味着由需要它的类实现,并且不适用于它的一般格式的每种类型的对象。

所以,对于你的情况,答案是否定的。