如何设计一个 DataSource/Service 类以获取网络或本地数据?

假设一个很常见的场景:
XYZMovie(一个虚构电影网站)提供了接口可以让开发者获取某部电影的基本信息(电影名、演员、放映时间、评分等)

接口类似这样:http:api.xyzmovie.com/get?nam...

我利用爬虫缓存了该网站的数据到本地数据库,现在有一个电影查询程序,它应该能设置本地或网络优先查询,如本地或网络查询无果则换另一种查询:

class XYZMovieDataSource{
    XYZMovie GetMovie(string id or name, etc, priority)
    {
        XYZMovie m;        if(priority == local) { dosomething }        else { dosomething }        return m; 
    }    
    XYZMovie GetMovieFromLocal(string id or name, etc) { dosomething }    XYZMovie GetMovieFromNetwork(string id or name, etc) { dosomething }
}

请问有什么更好的设计模式吗?


繁星coding
浏览 458回答 1
1回答

largeQ

没有发现有使用设计模式的必要,如果非要说,我觉得可以通过url的路径将两种方式区分开,一个叫cache(也就是你的local),一个叫origin(也就是你的network)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript