【发布时间】:2014-04-12 00:03:48
【问题描述】:
在 .NET 中,我们有 interface 和 class 类型。这两种类型之间有一些关系。在这个例子中,我们拥有 .NET 中的所有关系:
class Vehicle
{
}
interface IMovable
{
void Move();
}
class Engine
{
}
class Car : Vehicle, IMovable
{
private readonly Engine _engine;
public Car(Engine engine) { _engine = engine; }
public void Move() {}
}
-
Car扩展Vehicle- 一个Car is-a Vehicle -
Car实现IMovable-Car can-do IMovable -
Car需要Engine来创建自己 -Car has-a Engine
但我不了解 Ruby 的模块,因为它们具有功能但它们不是接口(因为它们定义了方法体,因此它们更类似于子类化),但它们不是超类(因为多重继承不是用 Ruby 完成)。
谁能帮我理解 Ruby 中模块的用法,并可能给 .NET 做一个类比?
编辑:看到由于重复而关闭的 3 票,我必须澄清一下。
我在问类和模块之间的关系是什么(假设实现接口的类在.NET 中是can-do)。 “重复”的答案并没有解决这个问题。
【问题讨论】:
-
你能花点钱吗?这太棒了pragprog.com/screencasts/v-dtrubyom/…
-
过去两周我给自己买了一只小狗,所以我的银行账户目前看起来更糟,所以没有:(
-
这是免费的 - hokstad.com/ruby-object-model... 阅读。 :-)
标签: ruby