一种选择是创建一个单一服务,该服务可由返回当前时间的所有系统访问.在生产中它可以返回DateTime.Now,并且在测试中它可以在月末场景中返回2月28日的游戏时间.
但有更好的方法吗?就像更加面向数据库的方法,因为它可以带来更好的性能?或者你会放入分布式缓存?这有一些众所周知的设计模式吗?
[1]典型案例:保险系统,核心银行系统实施的业务流程……
解决方法 处理此问题的一种方法是使用 clock interface:public interface IClock { DateTime Now { get; }}
并在整个代码中使用此接口,代替DateTime.Now.在生产中,您将使用其规范实现(或UTC变体):
public class SystemClock implements IClock { public DateTime Now { get { return DateTime.Now; } }}
例如,您可以在需要IClock的所有类中使用SystemClock作为默认值,并允许通过构造函数或setter注入其他实现.
在测试中,您可以创建测试实现或使用模拟框架对其进行模拟.
总结以上是内存溢出为你收集整理的c# – 申请时间的设计模式?全部内容,希望文章能够帮你解决c# – 申请时间的设计模式?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)