Patterns in SOME –Singleton
来源:互联网 发布:淘宝网3515强人女鞋 编辑:程序博客网 时间:2024/06/11 21:02
Code in C#:
namespace Singleton_DesignPattern
{
using System;
class Singleton
{
private static Singleton _instance;
public static Singleton Instance()
{
if (_instance == null)
_instance = new Singleton();
return _instance;
}
protected Singleton(){}
// Just to prove only a single instance exists
private int x = 0;
public void SetX(int newVal) {x = newVal;}
public int GetX(){return x;}
}
///<summary>
/// Summary description for Client.
///</summary>
public class Client
{
public static int Main(string[] args)
{
int val;
// can't call new, because constructor is protected
Singleton FirstSingleton = Singleton.Instance();
Singleton SecondSingleton = Singleton.Instance();
// Now we have two variables, but both should refer to the same object
// Let's prove this, by setting a value using one variable, and
// (hopefully!) retrieving the same value using the second variable
FirstSingleton.SetX(4);
Console.WriteLine("Using first variable for singleton, set x to 4");
val = SecondSingleton.GetX();
Console.WriteLine("Using second variable for singleton, value retrieved = {0}", val);
return 0;
}
}
}
Code in SOME:
CSingleton -> CSingleton[_instance]
v_() //protected constructor;
CSingleton s_Instance() //static function
int X //property with getter and setter
CClient
main
CClient.main
{
int val; //"int" will be reserved as a unknown type
CSingleton firstSingleton = CSingleton.Instance() //static method invoke
{
<% if (_instance == null) {%>
_instance.();
<% } %>
_instance; //return object
};
CSingleton secondSingleton = CSingleton.Instance(); //the second invoking, need not unfold
firstSingleton.X = 4;
val = secondSingleton.X;
}
- Patterns in SOME –Singleton
- Patterns in SOME –State
- Patterns in SOME –Observer
- Patterns in SOME –Memento
- Patterns in SOME –Mediator
- Patterns in SOME –Iterator
- Patterns in SOME – Command
- Patterns in SOME –Interpreter
- Patterns in SOME –Proxy
- Patterns in SOME –Flyweight
- Patterns in SOME –Facade
- Patterns in SOME –Decorator
- Patterns in SOME –Composite
- Patterns in SOME –Bridge
- Patterns in SOME –Prototype
- Patterns in SOME –Builder
- Patterns in SOME –Chain Of Responsibility
- Patterns in SOME –Template Method
- Patterns in SOME –Adapter (class)
- XML Schema用法
- 版本控制的重要性
- VS20005, Smart device vc++ , 不再支持的类
- Visual C++中DDB与DIB位图编程全攻略
- Patterns in SOME –Singleton
- 软件不是工业
- C++标识符
- Patterns in SOME –Prototype
- 野白仿古诗一首
- 一篇关于session的好文章,写的很详细
- ASP.NET 2.0中连接字符串的设置
- java web三层架构配置入门
- Patterns in SOME –Builder