将线程逻辑与业务逻辑耦合是常见的做法吗?我问的是测试驱动开发,想知道测试与线程逻辑相关的商业智能是否有好处/缺点。考虑以下,
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;
这有什么好处/缺点吗?是否可以使用相同的方法将业务逻辑与其他常见设计模式分离?