假設(shè)一個(gè)很常見的場(chǎng)景:XYZMovie(一個(gè)虛構(gòu)電影網(wǎng)站)提供了接口可以讓開發(fā)者獲取某部電影的基本信息(電影名、演員、放映時(shí)間、評(píng)分等)接口類似這樣:http:api.xyzmovie.com/get?nam...我利用爬蟲緩存了該網(wǎng)站的數(shù)據(jù)到本地?cái)?shù)據(jù)庫(kù),現(xiàn)在有一個(gè)電影查詢程序,它應(yīng)該能設(shè)置本地或網(wǎng)絡(luò)優(yōu)先查詢,如本地或網(wǎng)絡(luò)查詢無(wú)果則換另一種查詢: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 }
}請(qǐng)問(wèn)有什么更好的設(shè)計(jì)模式嗎?
如何設(shè)計(jì)一個(gè) DataSource/Service 類以獲取網(wǎng)絡(luò)或本地?cái)?shù)據(jù)?
繁星coding
2019-02-05 20:11:48