適配器模式:
生活中:?電壓適配器白魂,type-c轉(zhuǎn)接口之類的......
工作中:?最典型的service層汽纤,是否經(jīng)常會有這種情況,controller層接收到的只有單個屬性福荸,但是dao層只有一個getByCondition(Object?object)的方法蕴坪,這時候怎么辦。其實這種簡單的業(yè)務(wù)的話,service層充當?shù)木褪且粋€適配器背传,在service中將單個屬性設(shè)置為dao層所需實體的單個屬性呆瞻,然后再調(diào)用dao的方法返回值。
分類:?類適配器(繼承需要調(diào)用的目標類径玖,內(nèi)部使用目標類的方法)痴脾,對象適配器(需要調(diào)用的類是適配器的屬性,調(diào)用屬性對象的方法)
思考: service是哪種適配器?
外觀模式:
生活中:?點餐的窗口(只需要下單就可以得到自己想要的食物梳星,但是后廚是不會讓你看到的)
工作中: service層其實是很復(fù)雜的赞赖,你的一個需求可能需要多個service去分工合作,但是這樣就需要去調(diào)用多個service了冤灾。尤其是服務(wù)化的分布式系統(tǒng)前域,多個服務(wù)甚至是在不同的服務(wù)器上的。這時候controller層就起到作用了韵吨,用于跟用戶進行交互匿垄,后端service的工作用戶完全不需要知道,也不需要用戶去做過多的service的調(diào)用归粉。
? ? ? ? ? ? ? ? nginx做負載均衡和正向代理年堆,因為應(yīng)用做集群,ip地址是不一樣的盏浇,但是如果讓用戶自己去更換ip是不是很奇怪变丧?這時候只需要暴露nginx的ip就可以做到跟應(yīng)用的交互。
要求:?外觀模式不應(yīng)該暴露太多的細節(jié)绢掰,比如說某個方法名什么的痒蓬,怎么實現(xiàn)的什么的。
思考:?controller返回的結(jié)果有暴露太多東西么滴劲?