public class XMLMessage : IMessageStrategy
{
public List Get()
{
return new List { new MessageModel("XML方式獲取Message", DateTime.Now) };
}
public bool Insert(MessageModel mm) => true; // 略
}
構造函數注入具體策略,委派操作:
public class Message
{
private IMessageStrategy _strategy;
public Message(IMessageStrategy strategy) { _strategy = strategy; }
public List Get() => _strategy.Get();
public bool Insert(MessageModel mm) => _strategy.Insert(mm);
}
new Message(new SqlMessage()) 或 new XMLMessage())IMessageStrategy,零修改 Context