抽象工廠模式 C# 實作最後部分:兩個具體工廠與對應產品類別。
public class SqlMessageFactory : AbstractMessageFactory {
public override AbstractMessageModel CreateMessageModel()
=> new SqlMessageModel();
public override AbstractMessage CreateMessage()
=> new SqlMessage();
}
public class XMLMessageFactory : AbstractMessageFactory {
public override AbstractMessageModel CreateMessageModel()
=> new XMLMessageModel();
public override AbstractMessage CreateMessage()
=> new XMLMessage();
}
public class SqlMessage : AbstractMessage {
public override string Insert(AbstractMessageModel amm)
=> $"Sql方式插入Message。帳號:{amm.UserId};內容:{amm.Message};時間:{amm.PublishTime}";
}
public class XMLMessage : AbstractMessage {
public override string Insert(AbstractMessageModel amm)
=> $"XML方式插入Message。帳號:{amm.UserId};內容:{amm.Message};時間:{amm.PublishTime}";
}
客戶端僅依賴抽象工廠與抽象產品介面,具體實作可隨配置切換,符合依賴倒置原則。