设计模式学习总结(六)原型模式(Prototype)
原型模式即通过对象拷贝的方式来实现对同类对象的生成的一种设计模式!
浅复制:对于值类型,则直接复制该值,对于引用类型的字段则是对其引用的复制,如果原引用与现引用只要有一个的值发生变化,则都会造成两者值的变化。
深复制:对于值类型,则直接复制该值,对于引用类型的字段则复制其引用的对象,如果有多个/级嵌套引用,则复制所有引用的对象。
一、示例展示:
通过学习及总结,以下是我完成的原型模式的示例:
1. 创建抽象原型类:HandphonePrototype
public abstract class HandphonePrototype { private string cpu; private string keyboard; private string screen; public HandphonePrototype(string cpu,string keyboard,string screen) { this.cpu = cpu; this.keyboard = keyboard; this.screen = screen; } public string CPU { get { return cpu; } } public string KEYBOARD { get { return keyboard; } } public string SCREEN { get { return screen; } } abstract public HandphonePrototype Clone(); }
2. 创建具体原型类:AppleHandphonePrototype
public class AppleHandphonePrototype : HandphonePrototype { public AppleHandphonePrototype(string cpu, string keyboard, string screen) : base ( cpu,keyboard,screen ) { } public override HandphonePrototype Clone() { //Shallow copy return (HandphonePrototype)this.MemberwiseClone(); } }