/// <summary> /// 原型模式 /// </summary> public static void Do() { ColorPicker picker = new ColorPicker(200, 1, 90); picker.Name = "拾色器"; IColorDemo color = new RedColor(); color.Red = 255; color.Picker = picker; color.Name = "红色"; IColorDemo color1 = color.Clone(); color1.Red = 234; color1.Name = "红色2"; IColorDemo color2 = color.DeepClone() as IColorDemo; Console.WriteLine(color.Blue == color1.Blue); Console.WriteLine(color.Blue == color2.Blue); Console.WriteLine("Picker 是否:{0}", color.Picker == color2.Picker); Console.WriteLine("Deep Copy 的对象,是否相等:{0}", color.Picker == color2.Picker); Console.WriteLine("两个对象是否相等:{0}", color.Equals(color2)); Console.ReadKey(); }
static void Main(string[] args) { Cup cup = new Cup(); cup.Height = 2; Cup cup1 = (Cup)cup.Clone(); cup1.Height = 1; cup1.Factory.FactoryName = "AAA"; Console.WriteLine(cup.Height == cup1.Height); Console.WriteLine(cup.Factory == cup1.Factory); //颜色 IColorDemo color = new RedColor(); color.Red = 255; IColorDemo color1 = color.Clone(); color1.Blue = 255; Console.WriteLine(color.Blue == color1.Blue); IColorDemo2 color2 = new RedColor2(); color.Red = 255; IColorDemo2 color3 = color2.Clone(); color2.Blue = 252; Console.WriteLine(color2.Blue == color3.Blue); Console.ReadKey(); }