我在知乎上看到一個形象解釋的例子: 個人理解:將具體業務和底層邏輯解耦的組件。 大致的效果是:需要利用服務的人(前端寫業務的),不需要知道底層邏輯(提供服務的)的具體實現,只要拿著中間件結果來用就好了。 舉個例子:我開了一家炸雞店(業務端),然而周邊有太多屠雞場(底層),為了成本我肯定想一個個比價, ...
我在知乎上看到一個形象解釋的例子:
個人理解:
將具體業務和底層邏輯解耦的組件。
大致的效果是:
需要利用服務的人(前端寫業務的),不需要知道底層邏輯(提供服務的)的具體實現,只要拿著中間件結果來用就好了。
舉個例子:
我開了一家炸雞店(業務端),然而周邊有太多屠雞場(底層),為了成本我肯定想一個個比價,再綜合質量挑選一家屠雞場合作(適配不同底層邏輯)。由於市場變化,合作一段時間後,或許性價比最高的屠雞場就不是我最開始選的了,我又要重新和另一家屠雞場合作,進貨方式、交易方式等等全都要重來一套(重新適配)。
然而我只想好好做炸雞,有性價比高的肉送來就行。於是我找到了一個專門整合屠雞場資源的第三方代理(中間件),跟他談好價格和質量後(統一介面),從今天開始,我就只需要給代理錢,然後拿肉就行。代理負責保證肉的質量,至於如何根據實際性價比,選擇不同的屠雞場,那就是代理做的事了。
-------
這麼多贊受寵若驚。其實原回答並不全面,最近在看 Redux,裡面也有一個中間件(Middleware)的概念,和我的原答案並不完全一致,希望大家不要把我的回答當做標準答案,能有一些啟發就好~
作者:Gocy
鏈接:https://www.zhihu.com/question/19730582/answer/140527549
來源:知乎
保持更新,轉載請註明出處。如果您覺得對您有幫助,請點擊右下角推薦。