我有一个典型的 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,在基类中没有一个抽象方法存在的通知。
我期望得到的:
- 方法的描述和返回类型被继承(即复制)到
ConcreteClassfrom info atAbstractClass - 理想情况下,此方法在描述的“继承”或“实现”部分中指定,并带有一些来自to
ConcreteClass的参考链接。ConcreteClass#do_somethingAbstractMethod#do_something
有可能这样做吗?