教程集 www.jiaochengji.com
教程集 >  脚本编程  >  C语言  >  正文 C#设计模式之原型(ProtoType)

C#设计模式之原型(ProtoType)

发布时间:2019-01-01   编辑:jiaochengji.com
教程集为您提供C#设计模式之原型(ProtoType)等资源,欢迎您收藏本站,我们将为您提供最新的C#设计模式之原型(ProtoType)资源
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()

您可能感兴趣的文章:
C#设计模式之原型(ProtoType)
理解JavaScript中的面向对象
原型模式有什么用?
PHP设计模式之:原型模式学习笔记
Golang设计模式之原型模式
解析Javascript继承机制的设计思想
php设计模式是什么,该如何理解
JavaScript设计模式一:工厂模式和构造器模式
PHP设计模式概述
通过jQuery源码学习javascript(一)

[关闭]
~ ~