定義:用原型實例指定創建物件的種類,並且透過拷貝這個原型來創建新的物件。
有一個 MessageModel 實體類別,現在需要克隆它。透過實作 ICloneable 介面,讓物件自身負責複製邏輯,客戶端只需呼叫 Clone() 即可獲得新實例,無需知道具體建構細節。
作為原型模式中被複製的資料載體:
using System;
using System.Collections.Generic;
using System.Text;
namespace Pattern.Prototype
{
///
/// Message 實體類別
///
public class MessageModel
{
///
/// 建構函式
///
/// Message 內容
/// Message 發布時間
public MessageModel(string msg, DateTime pt)
{
this._message = msg;
this._publishTime = pt;
}
private string _message;
///
/// Message 內容
///
public string Message
{
get { return _message; }
set { _message = value; }
}
private DateTime _publishTime;
///
/// Message 發布時間
///
public DateTime PublishTime
{
get { return _publishTime; }
set { _publishTime = value; }
}
}
}
返回「設計模式(C#)系列文章索引」
本系列共 3 篇:第 1 篇介紹模式概念與基礎實體;第 2 篇詳細實作淺拷貝與深拷貝兩種複製策略;第 3 篇提供完整測試代碼與執行結果對比驗證。