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 ?