![]() |
1
9
我认为这确实是一个关于领域建模的问题。 如果您希望扩展/增强线程的行为方式,比如添加调试或性能输出,那么您所做的不会有任何问题,但我认为这不是您想要的。 您可能想在您的领域中用活动对象建模一些概念。在这种情况下,标准的Ruby方法更好,因为它允许您在不弯曲域模型的情况下实现这一点。 继承真的应该只用于建模IS-A关系。这个的标准Ruby代码巧妙地包装了解决方案。 要使对象处于活动状态,请让它用某种方法捕获新创建的线程
|
![]() |
2
6
很好,我以前见过有人这样做。下面是Ruby邮件列表中调用thread.new时运行的一些示例代码:
如果计划调用thread.fork或thread.start来运行线程,则应该从 Ruby documentation those methods : “基本上与thread::new相同。但是,如果类线程是子类的,那么在该子类中调用start将不会调用子类的initialize方法。” |
![]() |
3
5
我喜欢这样封装:
您也可以直接对线程子类执行此操作:
|
![]() |
4
1
线程Ruby文档提到“如果线程是子类的”,所以它看起来应该是好的。确保如果覆盖初始化,则调用super! |
![]() |
5
0
它不是真正的Ruby方式,但它取决于您试图用线程完成什么。 首先,Ruby1.8没有真正的线程,所以它们只对IO绑定的东西有用。 通常,在Ruby中,您希望在线程中执行某个操作,而不是表示一个线程,因此更容易定义一个在内部创建线程以处理线程方面的普通类。 继承是一种关系 |
![]() |
Stilian · 存储库设置中没有Github页面部分 3 年前 |
![]() |
Kellen · 查看$卷展栏功能列表 3 年前 |
![]() |
Akshit Thakur Ak · 我怎样才能把铁轨停下来? 3 年前 |
![]() |
johncssjs · 将数组转换为每个元素的嵌套哈希 3 年前 |
![]() |
solidsnake99 · Rails db:如何绕过验证 3 年前 |