抽象工廠模式核心抽象層定義:
public abstract class AbstractMessage {
public abstract string Insert(AbstractMessageModel amm);
}
public abstract class AbstractMessageModel {
public string Message { get; set; }
public DateTime PublishTime { get; set; }
public abstract string UserId { get; set; }
}
public class SqlMessageModel : AbstractMessageModel {
private string _userId;
public override string UserId { get => _userId; set => _userId = value; }
// 建構子略...
}
public class XMLMessageModel : AbstractMessageModel {
private string _userId;
public override string UserId { get => _userId; set => _userId = value; }
// 建構子略...
}
public abstract class AbstractMessageFactory {
public abstract AbstractMessageModel CreateMessageModel();
public abstract AbstractMessage CreateMessage();
}
定義兩個產品族(MessageModel、Message)的建立契約,具體工廠負責實例化對應具體類別。