码迷,mamicode.com
首页 > 其他好文 > 详细

简单工厂设计模式

时间:2017-02-10 21:41:40      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:win   ges   namespace   cli   orm   简单   app   设计模式   reading   

简单工厂设计模式说的通俗点就是保证对象在项目中出现的唯一性,并不是把原先对象先清除,而是如果没有该对象就实例化,再出现,否则,就出现原先的对象

用WinForm窗体为例

1、建立“简单工厂”的模型(自己建立一个对象,确保该对象最多出现一次,最少出现一次,即唯一性)

技术分享
 1 using System;
 2 using System.Collections.Generic;
 3 using System.ComponentModel;
 4 using System.Data;
 5 using System.Drawing;
 6 using System.Linq;
 7 using System.Text;
 8 using System.Windows.Forms;
 9 
10 namespace _04单例设计模式
11 {
12     public partial class Form2 : Form
13     {
14         //第一步:构造函数私有化
15         private Form2()
16         {
17             InitializeComponent();
18         }
19 
20         //第二部:声明一个静态的字段用来存储全局唯一的窗体对象
21         private static Form2 _single = null;
22         //第三步:通过一个静态函数返回一个全局唯一的对象
23 
24         public static Form2 GetSingle()
25         {
26             if (_single == null)
27             {
28                 _single = new Form2();
29             }
30             return _single;
31         }
32 
33         private void Form2_FormClosing(object sender, FormClosingEventArgs e)
34         {
35             //当你关闭窗体的时候 让窗体2的资源不被释放
36             _single = new Form2();
37         }
38     }
39 }
View Code

2、在窗体中设计功能。form1的功能如图

技术分享

代码:

技术分享
 1 using System;
 2 using System.Collections.Generic;
 3 using System.ComponentModel;
 4 using System.Data;
 5 using System.Drawing;
 6 using System.Linq;
 7 using System.Text;
 8 using System.Threading.Tasks;
 9 using System.Windows.Forms;
10 
11 namespace WindowsFormsApplication3
12 {
13     public partial class Form1 : Form
14     {
15         public Form1()
16         {
17             InitializeComponent();
18         }
19 
20         private void button1_Click(object sender, EventArgs e)
21         {
22             //没有form2,就先实例化,否则出现原先的form2
23             if (SingleObject.GetSingle().F2 == null)
24             {
25                 SingleObject.GetSingle().F2 = new Form2();
26             }
27             SingleObject.GetSingle().F2.Show();
28 
29         }
30 
31         private void button2_Click(object sender, EventArgs e)
32         {
33             if (SingleObject.GetSingle().F3 == null)
34             {
35                 SingleObject.GetSingle().F3 = new Form3();
36             }
37             SingleObject.GetSingle().F3.Show();
38         }
39     }
40 }
View Code

完!

 

简单工厂设计模式

标签:win   ges   namespace   cli   orm   简单   app   设计模式   reading   

原文地址:http://www.cnblogs.com/wwz-wwz/p/6387955.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!