抽象工廠模式產品模型基底類別 AbstractMessageModel:
public abstract class AbstractMessageModel {
public AbstractMessageModel() { }
public AbstractMessageModel(string msg, DateTime pt) {
this._message = msg;
this._publishTime = pt;
}
private string _message;
public string Message { get => _message; set => _message = value; }
private DateTime _publishTime;
public DateTime PublishTime { get => _publishTime; set => _publishTime = value; }
public abstract string UserId { get; set; }
}
public class SqlMessageModel : AbstractMessageModel {
public SqlMessageModel() : base() { }
public SqlMessageModel(string userId, string msg, DateTime pt)
: base(msg, pt) { this._userId = userId; }
private string _userId;
public override string UserId { get => _userId; set => _userId = value; }
}
基底類別集中共用屬性與建構子,UserId 留給具體模型實作不同儲存策略,體現模板方法與策略結合思想。