• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: 小 中 大 | 推荐给好友 上一篇 | 下一篇

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

发布: 2007-6-30 23:38 | 作者: admin | 来源: | 查看: 27次 | 进入软件测试论坛讨论

领测软件测试网 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的值了



}



}



}





延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:[email protected] 电话:010-51297073

软件测试 | 领测国际 | ISTQB | ISTQB官网 | TMMi | TMMi认证 | 国际软件测试工程师认证 | 领测软件测试网