我有一个典型的 OO 模式:一个基本抽象类(定义抽象方法)和几个以特定于类的方式实现这些抽象方法的类。
我习惯于在抽象方法中只编写一次文档,然后它会自动传播到几个具体的类(至少它在 Javadoc、Scaladoc、Doxygen 中的工作方式如下),即我不需要重复相同的描述在所有具体的类中。
但是,我找不到如何在 YARD 中进行这种传播。我试过了,例如:
# Some description of abstract class.
# @abstract
class AbstractClass
# Some method description.
# @return [Symbol] some return description
# @abstract
def do_something
raise AbstractMethodException.new
end
end
class ConcreteClass < AbstractClass
def do_something
puts "Real implementation here"
return :foo
end
end
我得到什么:
- 代码按预期工作 - 即在抽象类中调用 throws
AbstractMethodException
,在具体类中完成工作 - 在 YARD 中,
AbstractClass
明确定义为抽象,ConcreteClass
是正常的 - 方法描述和返回类型在
AbstractClass
- 据说方法
AbstractMethodException
投入AbstractClass
- 方法根本没有描述和通用
Object
返回类型ConcreteClass
,在基类中没有一个抽象方法存在的通知。
我期望得到的:
- 方法的描述和返回类型被继承(即复制)到
ConcreteClass
from info atAbstractClass
- 理想情况下,此方法在描述的“继承”或“实现”部分中指定,并带有一些来自to
ConcreteClass
的参考链接。ConcreteClass#do_something
AbstractMethod#do_something
有可能这样做吗?