最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
C#设计模式之原型(ProtoType)
时间:2022-07-02 11:09:48 编辑:袖梨 来源:一聚教程网
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()
比如我们有一个工具栏按钮,新建按钮,它是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()
相关文章
- 无主之地4锻造骑士亚蒙技能树一览 锻造骑士亚蒙职业技能有什么 09-15
- 无主之地4铁骨战士法拉技能树一览 铁骨战士法拉职业技能有什么 09-15
- 三角洲行动步枪怎么改 步枪热门改枪方案整理分享 09-15
- 无主之地4增加武器快捷栏位的方法 怎么增加武器快捷栏位 09-15
- 三角洲行动手枪改枪方案 手枪改狙热门改装码大全 09-15
- 无主之地4能更换职业吗 职业变更介绍 09-15