UML-設計模式-本地服務容錯-適配器+工廠模式

問題1:咱們的ProductCatalog存儲在了數據庫裏了,可是數據庫癱掉了,怎麼辦?數據庫

解決:本地(Map)---->Local(文件)---->DB

問題2:若是新加了存儲ProductCatalog的服務(如另一家合做公司的服務),怎麼辦?spa

解決:採用適配器模式。(注:Local和DB本例中也採用了適配器模式)

 

參見以下設計:設計

一、核心-對於產品信息(ProductCatalog)的適配器code

二、獲取pcblog

Store中,採用工廠模式,建立一個指定適配器,並傳給Register
必定注意:在1.1.2中,已經指明瞭到底使用哪一個Adaptee(DBProductsAdapter/BigWebServiceProductsAdapter/Local),Local是個特例,由於,在其內部不只實現了本身的服務,並且當本Local中不存在時還調用指定Adaptee

 

三、從pc中獲取ps產品

1)、本地沒有時,調LocalProductsio

1.一、本地map中不存在時,執行1.2
1.2、進入LocalProducts處理,並返回ps
1.三、存入本地map:put(id,ps)

2)、LocalProducts中沒有時,調DBProductsAdaptertable

 

 

 

3)、若是後來新增了外部服務BigWebServiceProductsAdapter時,當LocalProducts中沒有時,也能夠調用該新增的類BigWebServiceProductsAdapterclass

 

 

 最後,本例採用了:map

1)、適配器模式:支撐各種Adaptee:DB服務、外部合做商服務、Local服務
2)、工廠模式:建立使用哪一個Adaptee
相關文章
相關標籤/搜索