除了一个类A
外,我有一个具有完全通用实现的库。此类仅具有单个功能int format(int i){}
,但不能按原样使用:format
取决于每个不同的应用程序,需要用户定义。特别是,format
有很多if-then语句,需要针对应用程序的环境正确设置。但是,该库的其余部分是完全通用的,并且可以在特定规格内的任何format
选择中使用。
问题:让我的图书馆用户定义format
工作方式的最佳方法是什么?这需要在代码级别上完成(而不是仅使用配置文件)。
一个明显的想法是让用户直接在源代码上直接重写format
的定义,但这听起来并不是最优雅的方法。
另一个想法是使用继承:让用户定义一个从userA
继承的A
类,然后隐藏format
函数。但是该库的其余部分使用类A
而不是userA
。此时,可以将A
的所有实例替换为类型名desiredA
,然后让用户将该类型名定义为userA
。这也不是很优雅。
一定有更好的方法来做到这一点?