我们在 R 包中为不同的类提供了多种方法,但它们都与我们在描述中导入的包相距甚远。
现在,我们想为到目前为止不依赖于我们包的类编写更多方法。这很好用,如果必要的包在命名空间中,因此类是 R 已知的。然后,我们不需要在我们的包中导入包。
但是,这样做感觉有点不对劲。这种情况有最佳实践吗?不导入它的优点是依赖项更少,缺点是用户必须主动加载带有他想要使用我们功能的类的包。
更新
@RolandEnhances
实际上读起来就像我们追求的东西 - 尽管到目前为止我从未在任何包装中看到它。但是,我们并没有真正访问对象......as
包中有一个修改为强制,但它是通过方法导出的,所以我们需要导入方法。
我们唯一要做的是:
foo.objectfromotherclassnotinimports <- function(x){
x <- methods::as(x, "class_from_package_we_already_imported")
x2 <- foo2(x)
return(x)
}