欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

程序如何实现可扩展性

程序员文章站 2022-03-26 20:02:55
参考借鉴ABP中提供的扩展性 持续更新.... ==实现一:== 定义一个接口 定义一个实现,这个实现是要被另外的一个实现类代替的: 替代的实现类: 这里的 接口 特性都是ABP中的。 ==实现二:== 接口定义: 默认实现类: 替换类: ==实现三:== 参考: "扩展与解耦:Option模式与依 ......

参考借鉴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模式与依赖注入结合