创建型模式之单件模式
2005-08-09 11:06
260 查看
先看这段vb.net代码:
如果要控制实例被创建的个数,比如要求只能建立3个该类的实例,就很简单了,把New()方法修改一下,像这样:
using System;
namespace WindowsApplication7
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
namespace WindowsApplication7
关于Shared和static的用法:
C# 所有的程式碼都要存放在 Class,VB.NET 持續支援標準模組。定義在標準模組的函數和變數會在 assembly 中以 global 的方式呈現。標準模組是與 CLS 相容的,C# 無法定義這一點。
C# 和 VB.NET 都在 Class 支援靜態方法、屬性和 fields(在 VB.NET 稱為 Shared)。它們在使用時不需真正建立物件,例如
class AClass
則呼叫 StaticMethod 只需要
AClass.StaticMethod();
在 C# 呼叫靜態方法只能透過 type 名稱,在 VB.NET 則同時可以利用 type 名稱或是物件的 instance 來呼叫,範例如下
Class AClass
Public Shared Sub ShareMethod()
Console.WriteLine("可以不建立物件來呼叫函數")
End Sub
End Class
可以透過以下兩種的程式碼使用
AClass.ShareMethod()
Dim a As New AClass()
a.ShareMethod()
這變成是哲理性的考量了,C# 提供了紀律:如果你想要建立與物件無關但以函數組成的函式庫(library),你必須建立 Class 來實際地將函數群組在一起,雖然你從來都不會為該 type 建立物件。由於所有的靜態成員仍需以 type 名稱來存取,會強制要求程式設計師明確知道該成員的共享特色。
VB.NET 提供了開發人員更大的彈性。你可以為一般功能函數建立傳統的標準模組,它可以在不指定任何 class 或模組名稱下直接使用。你可以存取物件的 instance 的 shared 成員,但這有讓 shared 物件與 instance 物件混淆的危險。
如果要控制实例被创建的个数,比如要求只能建立3个该类的实例,就很简单了,把New()方法修改一下,像这样:
using System;
namespace WindowsApplication7
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
namespace WindowsApplication7
关于Shared和static的用法:
C# 所有的程式碼都要存放在 Class,VB.NET 持續支援標準模組。定義在標準模組的函數和變數會在 assembly 中以 global 的方式呈現。標準模組是與 CLS 相容的,C# 無法定義這一點。
C# 和 VB.NET 都在 Class 支援靜態方法、屬性和 fields(在 VB.NET 稱為 Shared)。它們在使用時不需真正建立物件,例如
class AClass
則呼叫 StaticMethod 只需要
AClass.StaticMethod();
在 C# 呼叫靜態方法只能透過 type 名稱,在 VB.NET 則同時可以利用 type 名稱或是物件的 instance 來呼叫,範例如下
Class AClass
Public Shared Sub ShareMethod()
Console.WriteLine("可以不建立物件來呼叫函數")
End Sub
End Class
可以透過以下兩種的程式碼使用
AClass.ShareMethod()
Dim a As New AClass()
a.ShareMethod()
這變成是哲理性的考量了,C# 提供了紀律:如果你想要建立與物件無關但以函數組成的函式庫(library),你必須建立 Class 來實際地將函數群組在一起,雖然你從來都不會為該 type 建立物件。由於所有的靜態成員仍需以 type 名稱來存取,會強制要求程式設計師明確知道該成員的共享特色。
VB.NET 提供了開發人員更大的彈性。你可以為一般功能函數建立傳統的標準模組,它可以在不指定任何 class 或模組名稱下直接使用。你可以存取物件的 instance 的 shared 成員,但這有讓 shared 物件與 instance 物件混淆的危險。
相关文章推荐
- 设计模式笔记--创建型模式之五--单件 Singleton
- 设计模式笔记(2)---单件模式(创建型)
- Singleton 单件(创建型模式)
- [转]【创建型】 之 单件模式
- 创建型模式:Singleton(单件)
- singleton(单件)-对象创建型模式
- 创建型模式-单件(Singleton)
- 创建型模式:单件模式
- 设计模式--创建型-Singleton(单例单件)
- 设计模式(六):Singleton 单件模式 -- 创建型模式
- (第Ⅱ部分 创建型模式篇) 第1章 单件模式(Singleton Pattern)
- Singleton 单件(创建型模式)
- C#面向对象设计模式学习笔记(1) - Singleton 单件模式(创建型模式)
- 创建型模式---单件模式(Singleton Pattern)
- [设计模式] 设计模式面面观(3):单件模式(Singletion)-创建型模式
- 设计模式单件(Singleton)---对象创建型模式
- (第Ⅱ部分 创建型模式篇) 第1章 单件模式(Singleton Pattern)
- Singleton patterns 单件(创建型模式)
- 单列模式(Singleton Pattern、单态模式、单件模式、对象创建型模式)
- (创建型模式)Singleton 单件模式