开发者

Prototype Design Pattern vs ICloneable

开发者 https://www.devze.com 2023-02-20 12:12 出处:网络
I am learning Design Patterns. Today I\'m reading about Prototype DP and found that it\'s used for cloning an object. Since we have an ICloneable interface in .Net, do we still开发者_高级运维 need the

I am learning Design Patterns. Today I'm reading about Prototype DP and found that it's used for cloning an object. Since we have an ICloneable interface in .Net, do we still开发者_高级运维 need the Prototype DP ? Or does ICloneable implement the Prototype DP? Any guidelines for choosing between the two ?


By implementing just an interface like ICloneable doesn't mean you're following a pattern, all depends in the intent you're trying to achieve. This is somewhat philosophical if you will, but I just want to be sure to stress this. Patterns have forces and intents, and by definition is a general solution for a common problem.

In this particular example, yes, implementing correctly the interface can lead you to the intent of the pattern, in fact the wikipedia article uses the ICloneable interface for its exameple written in Java : http://en.wikipedia.org/wiki/Prototype_pattern. Of course you can use another approach, using another interface of yours, is not a requirement for the pattern to use the ICloneable interface.

Hope this helps and welcome to the world of patterns :)


Design patterns are not something that are inherent in a language, but they are a common solution to a general problem. They are a concept and can be implemented in many different ways and many different languages.

0

精彩评论

暂无评论...
验证码 换一张
取 消