我经常面临想要向我无法控制的类添加其他方法的问题。例如,我可能想要一个prettyPrint
可以对没有统一 api 的不同对象类型(例如特殊__str__
方法)进行操作的函数。
该Nice
语言R
使用多种方法来实现这一点,很好地避免了访问者模式。例如,R
具有plot()
功能。个别程序员可以创建新类来定义数据类型(例如,网络图或股票行情数据)。次要用户/程序员然后可以编写绘图函数来填充该功能,即使他们无法访问图形或股票代码或其他绘图函数的代码。
鉴于我想稍后添加很多功能,使用class.method()
似乎是不可行的。每种类型的许多class_plot()
功能似乎也是一个坏主意。定义一个plot()
检查类型的大函数是不可扩展的。
多方法的替代品是什么?特别是,我对可能在 Jython 和 Scala 中工作的设计感兴趣。