应用程序设置接口

本文关键字:接口 设置 应用程序 | 更新日期: 2023-09-27 18:08:46

Reed Copsey对以下SO问题给出了这样的回答:

哪些设计模式可以应用于配置设置问题?

我更喜欢创建一个接口来设置查询、加载和储蓄。通过使用依赖注入,我可以将其注入到每个

有人能给这个代码示例吗?例如,一个设置类用于电子邮件客户端,另一个设置类用于FTP客户端基于这个"接口";可以是DI。我知道你可以为应用程序中的所有设置做一个全局单例(我目前正在这样做),但是Reed的这个建议很有趣,我想尝试一下。

应用程序设置接口

对于界面,我会这样做:

public interface ISettingsProvider
{
    void Load();
    T Query<T>(string key);
    void Set<T>(string key, T value);
    void Save();
}

然后我将实现该接口一次,并使用假设为MEF的依赖注入它。我想我会实现它与LinqToXml加载/保存到XML,也许有一个字典缓存设置在内存中。另一种方法是二进制序列化你的对象,并将快照转储到某个地方(这有它的缺点,例如,它不是人类可读的)。

如果您只保存字符串和/或数字,XML是一个不错的选择。如果你只有字符串,你甚至可以放弃泛型。