- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有至少 2 个其他类使用的存储库类。这个存储库类需要初始化——成本很高(查询数据库)。现在,我在需要的地方创建单独的存储库实例。问题是,每次我创建存储库时都必须对其进行初始化。如何设计这样的存储库以使其对 TDD 友好?我首先想到的是 Singleton,但它是 not the solution .
最佳答案
我希望 TDD 友好是指“可测试”代码。对于 Singleton ObjectX,我认为最常见的方法是将“控制创建”的责任拆分 (SRP) 给另一个类,以便 ObjectX 完成它应该做的所有事情。
然后你有另一个类 ObjectXFactory 或 Host 或任何你想称呼的类,负责为所有客户端提供单个实例(并在需要时提供线程同步等)
您只需要教育并遵守不调用 ObjectX 构造函数的团队约定 - 始终使用 ObjectXFactory.CreateInstance()。 (如果你发现你有一个意识/纪律问题,通过偷偷摸摸的 InternalsVisibleToAttribute 将 ObjectX 的 ctor 标记为内部并且只对测试程序集可见)
关于TDD 友好类单例类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/780483/
我最近购买了《C 编程语言》并尝试了 Ex 1-8这是代码 #include #include #include /* * */ int main() { int nl,nt,nb;
早上好!我有一个变量“var”,可能为 0。我检查该变量是否为空,如果不是,我将该变量保存在 php session 中,然后调用另一个页面。在这个新页面中,我检查我创建的 session 是否为空,
我正在努力完成 Learn Python the Hard Way ex.25,但我无法理解某些事情。这是脚本: def break_words(stuff): """this functio
我是一名优秀的程序员,十分优秀!