原型设计模式 vs ICloneable

8

我正在学习设计模式。今天我在阅读有关原型模式的内容,发现它用于克隆对象。由于在.Net中有一个ICloneable接口,我们是否仍需要原型模式?或者ICloneable实现了原型模式?选择两者之间有什么指导方针吗?


1
不要实现ICloneable接口:http://blogs.msdn.com/b/brada/archive/2004/05/03/125427.aspx - Mark Seemann
2个回答

10
通过仅实现接口如ICloneable并不意味着您正在遵循一种模式,一切取决于您试图实现的意图。这在某种程度上是哲学性的,但我只想确保强调这一点。模式具有力量和意图,并且根据定义是通用问题的一般解决方案。
在这个特定的例子中,是的,正确实现接口可以使您达到模式的意图,实际上维基百科文章使用Java编写的ICloneable接口作为其示例:http://en.wikipedia.org/wiki/Prototype_pattern。 当然,您可以使用另一种方法,使用您自己的另一个接口,使用ICloneable接口并不是使用模式的要求。
希望这可以帮助您进入模式的世界 :)

4

设计模式并不是一种编程语言的内在特性,而是一种解决常见问题的通用解决方案。它们是一个概念,并可以在许多不同的方式和许多不同的编程语言中实现。


这实际上是不正确的。设计模式是语言中缺失功能的“支撑”,因此使用良好的编程语言,您将继承一些或大多数模式。请参见https://en.wikipedia.org/wiki/Software_design_pattern#Criticism。 - hyankov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接