将线程逻辑与业务逻辑分离?

时间:2013-03-29 00:33:11

标签: c++ multithreading unit-testing tdd

通常的做法是将线程逻辑与业务逻辑结合起来吗?我正在考虑测试驱动开发,想知道测试与线程逻辑相关的商业智能是否有好处/缺点。请考虑以下内容,

class Thread { ... }
class FooThread : public Thread {
  /* business intelligence coupled to threading */
}

,或者

class Thread { ... }
class Foo {
  ...
  /* once again coupled */
  Thread th;
}

这些方法似乎与尝试在测试类时抽象出依赖关系有些不同。是否有可能/可接受设计一个可以实例化完全与线程分离的类,也许可能使用模板?

template<class SomeFooClass>
class Thread { ... }

class Foo { 
  /* this class can be tested separately */
}

typedef Thread<Foo> FooThread;

这会有任何好处/弊端吗?是否可以使用相同的方法将业务逻辑与其他常见设计模式分离?

0 个答案:

没有答案