Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 原型设计模式与iClonable_C#_Design Patterns_Prototype Pattern - Fatal编程技术网

C# 原型设计模式与iClonable

C# 原型设计模式与iClonable,c#,design-patterns,prototype-pattern,C#,Design Patterns,Prototype Pattern,我正在学习设计模式。今天我阅读了关于原型DP的文章,发现它被用来克隆一个对象。既然我们在.Net中有一个可克隆接口,我们还需要原型DP吗?还是ICloneable实现了原型DP?有什么准则可以在两者之间做出选择吗 只实现像ICloneable这样的接口并不意味着你在遵循一种模式,这完全取决于你试图达到的目的。如果你愿意的话,这有点哲学性,但我只想强调这一点。模式具有力量和意图,根据定义,它是一个常见问题的通用解决方案 在这个特定的示例中,是的,正确实现接口可以引导您找到模式的意图,事实上,wik

我正在学习设计模式。今天我阅读了关于原型DP的文章,发现它被用来克隆一个对象。既然我们在.Net中有一个可克隆接口,我们还需要原型DP吗?还是
ICloneable
实现了原型DP?有什么准则可以在两者之间做出选择吗

只实现像
ICloneable
这样的接口并不意味着你在遵循一种模式,这完全取决于你试图达到的目的。如果你愿意的话,这有点哲学性,但我只想强调这一点。模式具有力量和意图,根据定义,它是一个常见问题的通用解决方案

在这个特定的示例中,是的,正确实现接口可以引导您找到模式的意图,事实上,wikipedia文章使用了
iclonable
接口作为其Java编写的示例:。 当然,您可以使用另一种方法,使用您的另一个接口,而不是模式使用
ICloneable
接口的要求


希望这有助于并欢迎来到模式世界:)

设计模式不是语言固有的东西,但它们是一般问题的常见解决方案。它们是一个概念,可以用许多不同的方式和语言来实现。

不要实现IClonable接口:事实并非如此。设计模式是语言中功能缺失的“拐杖”。因此,使用一种好的编程语言,您可以继承部分或大部分模式。看见