簡單工廠模式 (Simple Factory Pattern):
定義一個工廠類,它可以根據參數的不同返回不同類的實例,被創建的實例通常都具有共同的父類。
在簡單工廠模式中用於創建實例的方法通常是靜態(static)方法,因此又被稱為靜態工廠方法(Static Factory Method)模式
要點:如果需要什麼,只需要傳入一個正確的參數,就可以獲取所需要的對象,而無須知道其創建細節。

用代碼來實現就是:
簡單工廠模式包含以下3個角色:
Factory(工廠角色)
Product(抽象產品角色)
ConcreteProduct(具體產品角色)
//典型的抽象產品類代碼:
abstract class Product
{
//所有產品類的公共業務方法
public void MethodSame()
{
//公共方法的實現
}
//聲明抽象業務方法
public abstract void MethodDiff();
}
//典型的具體產品類代碼:
class ConcreteProductA : Product
{
//實現業務方法
public override void MethodDiff()
{
//業務方法的實現
}
}
//典型的工廠類代碼:
class Factory
{
//靜態工廠方法
public static Product GetProduct(string arg)
{
Product product = null;
if (arg.Equals("A"))
{
product = new ConcreteProductA();
//初始化設置product
}
else if (arg.Equals("B"))
{
product = new ConcreteProductB();
//初始化設置product
}
return product;
}
}
//客戶端代碼:
class Program
{
static void Main(string[] args)
{
Product product;
product = Factory.GetProduct("A"); //通過工廠類創建產品對象
product.MethodSame();
product.MethodDiff();
}
}
//兩個類A和B之間的關系應該僅僅是A創建B或者是A使用B,而不能兩種關系都有。將對象的創建和使用分離,使得系統更加符合單一職責原則,有利於對功能的復用和系統的維護。
單例模式 (singleton pattern):
即一個類只有一個實例化對象,並提供一個全局訪問點來訪問這個實例。
1.該類只能有一個實例。
2.必須自行創建這個實例。
3.必須自行向整個系統提供這個實例。
單例模式的結構:

單例模式的實現方式: 1.私有構造函數 2.靜態私有成員變量(自身類型) 3.靜態公有的工廠方法
// 單例模式的實現方式
class Singleton { private static Singleton instance=null; //靜態私有成員變量 //私有構造函數 private Singleton() { } //靜態公有工廠方法,返回唯一實例 public static Singleton GetInstance() { if(instance==null) instance=new Singleton(); return instance; } }