我正在设计一个使用异步 HTTP 下载的应用程序。我希望这个应用程序可以在 Android、Windows 桌面和 Mac OS 桌面上运行,这就是我用 Java 开发它并尝试使其非常模块化的原因。
(为清楚起见进行编辑,我使用的库是AsyncHttpClient和Android-Async-Http)
我已经有库来处理下载,但问题是 CORE 模块中的特定方法必须能够执行下载功能,而不管使用什么库。我对该怎么做有两个想法。
- 想法 1:在 CORE 中调用一个抽象类
GenericDownloader
,并在特定的应用程序中扩展它,例如AndroidDownloader
. - 思路2:在CORE中调用一个接口
DownloadInterface
,在具体的应用程序中实现,类似于思路1。
这两个想法的问题是我无法实例化抽象类或接口,那么如何在 CORE 中实现功能呢?
我还能如何解决这个问题?