我有一种强硬感,我正试着把头包起来。我有一些公共接口和一些包私有类,如下所示。
基本上我的包私有类(下面称为UltraDecoder
)需要一些蹩脚的解码逻辑来解码数据并对其执行一些操作以供内部使用。但是,我还想将这个蹩脚的解码逻辑用于其他目的。我似乎无法做的是想出一个好方法将我的低级解码逻辑导出为可以被外部类使用的接口,和仍然在内部使用它{{1没有暴露UltraDecoder
的内部细节的类。
有什么建议吗?
UltraDecoder
答案 0 :(得分:1)
在与UltraDecoder相同的包中创建公共类DecoderUtil。
public class DecoderUtil { public static void decode(SuperDecoder decoder) { //do common stuff if( decoder instanceof UltraDecoder ){ //do stuff specific to UltraDecoder } } }
答案 1 :(得分:0)
我自己很难理解你的功能需求,但至少听起来你需要一个public abstract class
已经实现了一些“默认”逻辑,你可以在子类中重用它们。它被称为Template Method Pattern。您在Java Collections和IO API中几乎无处可见。
答案 2 :(得分:0)
你能在UDL中为onUpdate添加一个带有SDL参数的重载吗?话虽这么说,我真的不会担心对象创建的开销,除非你知道这是一个问题。