---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
单例模式:
单例模式确保某一个类只有一个实例,而且向这个系统提供这个实例。
单例模式的要点:
1、某个类只能有一个实例
2、它必须自行创建这个实例,必须自行向这个系统提供这个实例
单例模式的结构及实现:
1、饿汉式单例类:
public class EagerSingleton {
private EagerSingleton() { } //首先外界不能new
private static final EagerSingleton m_instance = new EagerSingleton(); //类有一个实例并通过下面方法直接获取
public static EagerSingleton getInstance() {
return m_instance;
}
}
2、懒汉式单例类:
public class LazySingleton {
private LazySingleton() { } //同样首先外界不能new
private static LazySingleton m_instance = null;
public static LazySingleton getInstance() { // 如果没有,就new一个实例。
if(m_instance==null){
synchronized(LazySingleton.class){//加锁来维护一个实体,线程才安全
if(m_instance == null)
m_instance = new LazySingleton();
}
}
return m_instance;
}
}
工厂模式:
通过一个类,依照参数的不同new出不同需求的实例。
public class TicketFactory {
public static Ticket CreateTicket(string type) {
Ticket ticket=null;
switch (type){
case "1":
ticket = new FreeTicket();
break;
case "2":
ticket = new StudentTicket();
break;
default:
ticket=new Ticket();
break;
}
return ticket;
}
}