我目前正在开发一个基于组件的 API,它是有状态的。顶层组件每个都实现了大约十几个接口。
因此,库存的顶级组件位于抽象实现堆栈的顶部,抽象实现又包含多个混合实现并实现多个混合接口。
到目前为止,一切都很好(我希望)。
问题是基本功能实现起来非常复杂(5 层基类中有 1000 行),因此我不希望组件编写者自己实现接口,而是扩展我的基类(所有锅炉车牌代码已经写好了)。
因此,如果 API 接受接口而不是对我希望组件编写者扩展的抽象实现的引用,那么我将面临实施者不会执行其他代码区域所要求和假定的验证的风险。
因此,我的问题是,有时使用抽象实现引用而不是对其实现的接口的引用来参数化 API 方法是否有效?
您是否有一个使用这种技术的设计良好的 API 的示例,或者我是否试图说服自己采用不好的做法?