原型模式(Proto)是创建一个对象,并通过拷贝这个对象来创建新的对象。
浅拷贝复制对象的基本类型,对对象类型不进行拷贝,只是产生引用。
深拷贝复制对象的基本类型,以及对象类型。
.NET提供了MemberWiseClone方法以及ICloneable接口用于实现浅拷贝以及深拷贝,例如:
public class Person
{
public int ID;
} // class Person
public class ProtoType : ICloneable
{
public int ID;
public Person Contact;
public object Copy()
{
return MemberwiseClone();
}
public object Clone()
{
ProtoType obj = new ProtoType();
obj.ID = ID;
obj.Contact = new Person();
obj.Contact.ID = Contact.ID;
return obj;
}
} // class ProtoType
单态模式(Singleton)主要是用于保证在应用程序中一个类只存在一个实例。例如:
public class Singleton
{
private static string m_Name;
public static string Name
{
get
{
if (m_Name == null)
{
m_Name = "Alden.Gao";
}
return m_Name;
}
}
} // class Singleton