程序如何实现可扩展性
参考借鉴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"; } }
实现三:
参考:
上一篇:
通过多线程提高代码的执行效率例子
下一篇:
有能干到退休的程序员吗?