程序如何实现可扩展性
程序员文章站
2022-06-27 20:54:46
参考借鉴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"; } }
实现三: