程序如何实现可扩展性
参考借鉴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模式与依赖注入结合
程序如何实现可扩展性相关推荐
- Linux下C程序的可扩展性.
What I write, what I lose. 以下为个人关于Linux下C程序的可扩张性的一点想法. 可扩展性的应用场景: 1. 有两个项目都需要使用的一个相同功能的程序, 但是有些要求不一样 ...
- 桌面应用程序 azure_Azure Logic应用程序用例–黑色星期五
桌面应用程序 azure This blog gives an overview of how Azure Serverless technologies came to rescue when th ...
- 设计可扩展的应用程序
Eric E. Allen (eallen@cs.rice.edu), 博士研究生候选人, Rice University 2001 年 9 月 04 日 在 诊断 Java 代码 的这个部分和即将到 ...
- 2018年最佳45 APM(应用程序性能监视和管理)工具
应用程序性能管理(APM)工具收集和监视大量数据,以管理软件应用程序的性能和可用性.APM工具并不缺乏,为您的项目选择一个可能很麻烦. 这里列出了45种应用程序监控工具及其下载链接和主要功能. 1)新 ...
- CAD二次开发加载自定义模块程序流程
(1)启动CAD: acad.exe 脚本1 脚本1中通常包含命令内容和顺序 (1)使用CAD自身命令初始化: 初始化CAD的窗口内容和风格,如但文档试图:初始化缩放比例等等: (2)arxload ...
- 编程精粹 --Microsoft编写优质无错C程序秘诀
献给我的妻子Beth, 以及我的双亲Joseph和Julia Maguire ────为了他们的爱和支持 序 1986年,在为几家小公司咨询和工作了10年之后为了获得编写Macintosh应用程序的经 ...
- 如何编写可测试的golang代码
每次在开发之前,我都会考虑写好单元测试,但是随着开发的进行,就会发现事情没有这么简单,因为更多时候项目中间夹杂着很多的数据库操作,网络操作,文件操作等等,每次涉及到有这些操作的单元测试,都要花费很大的 ...
- Azure 执行模型
最后更新时间(英文版):01/20/2015 最后更新时间(中文版):04/11/2015 Azure 提供了用于运行应用程序的不同执行模型.每种模型提供一组不同服务,而你选择哪种模型完全取决于你要做 ...
- day3 python 函数
常犯的错误: IndentationError:expected an indented block说明此处需要缩进,你只要在出现错误的那一行,按空格或Tab(但不能混用)键缩进就行... 函数是指一 ...
最新文章
- 图表2------沪深300指数图+收盘价的EMD分量图+PCA后的特征累计贡献率表+预测模型评估指标公式表
- Spring 中的bean 是线程安全的吗?
- 程序员面试题精选100题(21)-左旋转字符串[算法]
- 思科bfd静态路由切换_思科路由器与华为路由器静态路由关联双向BFD配置
- 黑胡桃木php,揭秘美国黑胡桃木的美
- A+B Problem(V)
- xmemcached spring 配置文件
- 操作系统 —— 磁盘
- Modbus协议栈开发笔记之四:Modbus TCP Client开发
- 关联规则算法c语言样例及分析_推荐系统总结系列-关联规则算法(四)
- Scribe安装问题
- linux上的手机管家,闪电手机管家极速版
- Libra客户端使用
- Python 二次开发 AutoCAD 简介
- 红帽子 linux启动盘,红帽子Red Hat Linux 9 光盘启动安装过程图解
- 1147 Heaps (30分)
- CNCF的中国云原生调查报告
- uni-app微信小程序,写一个级联查询
- 中国移动的指令大全!(不再需要人工台)
- python将doc文件转换docx