程序如何实现可扩展性

2022-10-08,,

参考借鉴abp中提供的扩展性

持续更新....

实现一:

定义一个接口

public interface imessagewriter
{
    string write();
}

定义一个实现,这个实现是要被另外的一个实现类代替的:

public class consolemessagewriter : imessagewriter, itransientdependency
{
    public string write()
    {
        return "consolemessagewriter.write";
    }
}

替代的实现类:

[dependency(replaceservices = true)] // 调用了asp.net core中的services.replace实现
public class replacemessagewriter : imessagewriter, itransientdependency
{
    public string write()
    {
        return "replacemessagewriter.write";
    }
}

这里的itransientdependency接口dependency特性都是abp中的。

实现二:

接口定义:

public interface ibrandprovider
{
    string appname { get;  }
}

默认实现类:

public class defaultbrandprovider : ibrandprovider, itransientdependency
{
    public defaultbrandprovider() { }

    public virtual string appname { get => "defaultbrandprovider"; }
}

替换类:

[dependency(replaceservices = true)] //如果没有此特性,那么接口的实现类有两个。
public class replacebrandprovider : defaultbrandprovider
{
    public override string appname { get => "replacebrandprovider"; }
}

实现三:

参考:扩展与解耦:option模式与依赖注入结合

《程序如何实现可扩展性.doc》

下载本文的Word格式文档,以方便收藏与打印。