设计模式--原型(Prototype)模式

写这些也许有人认为“为了模式而模式”。Insus.NET所想到的,每个大师成为大师之前,也许都得这样做。

走路,从小就开始学,直至现在,谁还不是为了走路而走路?一直重复着......

很多人没有分享自己的经验,分享自己的过程,分享这东西,它不会因为分享而变少了......

感动的故事,是因为分享了历程而让人感动......

设计模式,在ASP.NET开发过程中,确实很多环境应用得到,也许只因为时间与效率问题,使用了最直接的方法来解决了。往往给以来的维护带来了繁杂变得难以进行。

 进入主题,先看看这篇《Mouse点击之后,复制GridView控件的数据行http://www.cnblogs.com/insus/p/3680461.html 用户点击所在行进行复制。其实其实现的方法,是对原有数据进行过滤。

原型的设计模式中,是对原对象进行克隆。

宣告一个抽象类或是接口,其中有一个方法,就是克隆自己:


创建一个容器,存储所有处理的对象:


实际对象中要实作原型抽象类:


下面是点击行时,复制对象:

 
最终结果:

 

上面的方法,选择行,复制一个,如果把选择的均保存起来:


演示,此次只要点一点,就复制一个:

 

但是,或许你需要的是,点击一次克隆一次,曾经选择过的,不再存储:

 

实时演示,不管点选多少次,只存储一个对象:

 

源代码下载:
http://download.cnblogs.com/insus/CSharpNET/prototype_pattern.rar

 

posted @ 2014-12-09 15:36  Insus.NET  阅读(...)  评论(...编辑  收藏