在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
1. 为什么要用原型?用原型的好处 比如我们有一个工具栏按钮,新建按钮,它是ToolbarButton的实例,它有长度、宽度属性等,而且属性都赋了值。 现在我们要再添加一个保存按钮,它也是ToolbarButton的实例,它也有长度、宽度属性等,不过它还没赋值,它的值和新建按钮的值一样。 如果我们不用原型设计模式的话,可能重新赋一遍值。如果我们用原型设计模式的话,我们可以把新建按钮作为保存按钮的原型。那样的话就不需要再给保存按钮赋值,它的默认的长度、宽度就和新建按钮一样了。 2. 在C#中怎样用原型? 因为类的实例是引用类型,要想用原有的类中的实例的数据的话,只能用clone方法。 Clone方法分为深clone和浅clone 在C#中提供了浅clone的方法,即为MemberwiseClone() C#浅Clone的例子: using System;
namespace DesignPattern { public class ToolbarButton : ICloneable //实现Clone接口 {
private int _Width; private int _Height; public ToolbarButton() { } public int Width { get { return _Width; } set { _Width=value; } } public int Height { get { return _Height; } set { _Height=value; } }
public object Clone() { return this.MemberwiseClone(); //返回浅clone方法¨ } } public class Test { public void TestMethod() { ToolbarButton mtb_NewButton=new ToolbarButton(); mtb_NewButton.Width=60; mtb_NewButton.Height=30; ToolbarButton mtb_SaveButton=new ToolbarButton(); mtb_SaveButton=(ToolbarButton)mtb_NewButton.Clone(); //这时mtb_SaveButton就有Width和Height的值了 } } } |
请发表评论