精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

聊聊前端領域那些“門面”

開發 前端
門面模式(Facade)是 23 種經典設計模式之一,也叫外觀模式,是通過在客戶端和子系統之間引入一個中間層,將內部復雜度隱藏,暴露出一個簡單易用的接口。

[[410537]]

本文轉載自微信公眾號「神光的編程秘籍」,作者神說要有光zxg。轉載本文請聯系神光的編程秘籍公眾號。

門面模式(Facade)是 23 種經典設計模式之一,也叫外觀模式,是通過在客戶端和子系統之間引入一個中間層,將內部復雜度隱藏,暴露出一個簡單易用的接口。

引入門面模式之后,對客戶端來說,使用起來會簡單很多,不再需要了解具體的細節。

比如,沒用門面模式之前,可能是這樣的調用關系,客戶端需要了解每一個內部細節

而用了門面模式之后,客戶端不再需要了解具體每一個模塊,只需要把自己的需求告訴 Facade,然后它去調用內部模塊

加了一個門面,有改變功能么?并沒有,只是使得對外的接口更易用了。而這,就是門面模式的意義:封裝內部細節,簡化調用

其實在軟件領域這種門面太多了,各種 DSL(領域特定語言) 包括 html、css 還有 vue 的 template、react 的 jsx 都算是門面,babel 和 eslint 的 preset 也是門面。

下面我們分別來分析一下。

簡化 dom 創建的門面:html

瀏覽器提供了 dom api,基于 dom api 我們就可以構建 dom 樹,那為什么需要 html 呢?不用 html 可以么?

比如 dom api 創建 dom:

  1. const div = document.createElement('div'); 
  2. div.className = "a"
  3.  
  4. const img = document.createElement('img'); 
  5. img.src="./b.jpg" 
  6.  
  7. div.appendChild(img); 

和 html 描述 dom:

  1. <div class="a"
  2.     <img src="./b.jpg"
  3. </div> 

 

 

兩者并沒有區別。

所以,html 并沒有增加功能,它只是簡化了 dom 操作,這種明顯就是一種門面模式,不過是通過 DSL 的方式。

DSL 是指領域特定語言,設計一種語法來簡化邏輯的描述,然后通過解析該語言來專程描述的目標。瀏覽器就是通過解析 html 來構建 dom 樹的。

簡化樣式描述的門面:css

css 同樣也是一種 dsl,為了簡化樣式信息的描述。

比如直接給 dom 添加樣式會比較麻煩:

  1. const div = document.querySelector('.a'); 
  2. div.style.backgroundColor = 'blue'
  3.  
  4. const img = div.querySelector('img'); 
  5. img.style.border = '2px'

而通過 css 來添加就簡單很多:

  1. .a { 
  2.     background-color: blue; 
  3. .a img { 
  4.     border: 2px; 

css 有增加新功能么?沒有,它只是使得樣式描述更簡單,同樣,css 這種 dsl 也是由瀏覽器來解析的。

vue 的 template

我們知道操作視圖基于 dom api 就足夠了,前端框架就是把數據映射到視圖,而映射的目標也是 dom api(當然,中間有了一層虛擬 dom,那么 api 也是先創建虛擬 dom),但是 dsl 就沒必要選擇用 html 了,完全可以用其他的更適合自己特點的方式來描述。

vue 選擇了 template:

如果直接用 api 描述視圖,不夠直觀:

  1. render: function (createElement) { 
  2.   return createElement('h1', this.blogTitle) 

vue 選擇了 template 的方式,類似 html:

  1. <h1>{{ blogTitle }}</h1> 

 

這樣并沒有增加功能,只是讓開發者使用框架描述視圖的時候更簡單,而且 vue 還支持過濾器、指令、插值語法等功能。

但是引入了 template 的 dsl,也就需要編譯了,不像 html 是瀏覽器解析的,這個自定義 dsl 需要用自己的編譯器來解析,所以 vue 內部有一個 template compiler 來把模版轉為 render 函數。

react 的 jsx

react 同樣也是要把對視圖的描述映射成真正的 dom(中間有層虛擬 dom),首先會提供 api 的方式,但是為了簡化使用,會提供了描述視圖的方式:jsx。

直接用 api 的方式比較麻煩:

  1. const title = React.createElement("h1", {className: "main"}, "Hello React"); 

jsx 的方式就簡單很多:

  1. const title = ( 
  2.   <h1>Hello React</h1> 
  3. ); 

vue 和 react 選擇了不同的 dsl。我們知道 dsl 是需要編譯成具體的 api 調用的,vue 是在框架內部實現的,而 react 的 jsx 則是 babel 實現(因為是 js 語法的擴充)。

可以看到不管是 vue 的 template,還是 react 的 jsx 都沒有增加新的功能,增加這樣一層 dsl 只是為了簡化開發者對視圖的描述,和 html 的設計目的一致,都是門面模式的思想。

babel 的 preset

babel 是做代碼轉換的,把 es next 的語法,轉成目標環境支持的 js 語法,具體完成轉換的是一個個插件。但是如果開發者直接去指定插件太過麻煩,比如 es2015 就有一系列插件,而 es2016 又有一堆,如果由開發者去指定,那使用起來太過復雜。所以 babel 設計出了 preset。

babel6 的 preset 有 preset-es2015、 preset-es2016 等,他們內部就是一系列插件。而 babel7 進一步簡化成了 preset-env,只要通過 targets 指定目標環境,那么就會自動選出一系列插件來使用。

preset 有實現什么新功能么?沒有,最終轉換還是由插件來做的。但是 preset 簡化了開發者使用 babel 的成本,所以這也是一種典型的門面模式。

總結

門面模式是軟件領域特別常見的一種模式,就是當暴露給客戶端的子系統特別復雜的時候,通過增加一層門面,由他去和具體的子系統打交道,隔離復雜度,讓軟件的使用變得簡單。通過隔離復雜度,讓復雜度得到很好的治理,不然的話可能會隨著迭代而使用起來越來越復雜。

前端領域常見的 html、css、還有 vue 的 tempalte 以及 react 的 jsx 都是 dsl,dsl 的目的就是為了簡化調用,是門面模式的典型實現。(template 和 jsx 要由自己做編譯,而 html、css 是瀏覽器做的編譯)。

此外,babel 和 eslint 等的 preset 也是為了簡化使用成本而引入的,不然用戶就要直接面對各種復雜的插件配置。

 

門面模式并沒有引入新的功能實現,只是為了簡化系統使用成本而引入的一個入口。如果遇到系統使用特別復雜的時候,不妨通過引入一個門面(封裝成 api 或者 dsl 的形式)來簡化吧。

 

責任編輯:武曉燕 來源: 神光的編程秘籍
相關推薦

2022-05-23 08:34:08

微前端微服務開發

2021-06-02 08:33:31

TPCTPC-H系統

2022-02-15 22:45:00

前端設計模式

2018-05-09 08:18:26

微服務改造架構

2021-05-10 08:58:09

Harbor架構Registry 服務

2022-09-09 08:08:28

開源項目服務

2022-04-14 11:50:39

函數組件hook

2013-01-11 16:05:41

求職招聘

2022-11-14 08:44:56

前端門面模式接口

2023-07-31 08:21:22

語法校對器Pick

2017-03-16 12:08:09

OpenstackCompute DriLibvirt

2022-06-02 08:42:15

Redis數據庫

2021-08-06 11:50:49

Linux 字節對齊Linux 系統

2020-11-30 13:10:39

MySQL安全服務器

2021-01-13 11:11:29

TCP連接耗時網絡協議

2012-08-30 09:41:23

移動應用開發

2020-09-17 13:43:03

等保2.0網絡安全漏洞

2018-04-24 09:05:09

容器存儲接口

2024-03-27 07:58:23

開源軟件MongoDB

2019-01-07 12:02:02

TCP長連接Java
點贊
收藏

51CTO技術棧公眾號

91午夜精品| 丝袜在线观看| 日本成人中文字幕在线视频| 亚洲日韩中文字幕| 91pony九色| free性护士videos欧美| 欧美国产乱子伦| 97超级碰碰| 男人的天堂av网站| 韩日精品在线| 尤物yw午夜国产精品视频| 男生和女生一起差差差视频| 日本蜜桃在线观看视频| 自拍偷拍国产亚洲| 欧美一区少妇| 国产综合在线播放| 精品在线播放免费| 国产成人精品999| 成人免费看片98| 日韩国产欧美一区二区| 亚洲国内精品在线| 香蕉网在线视频| 色8久久久久| 日本道精品一区二区三区| 成年女人18级毛片毛片免费 | 成人免费毛片日本片视频| 筱崎爱全乳无删减在线观看 | 国产一区二区成人久久免费影院| 97成人在线视频| 曰本女人与公拘交酡| 不卡在线一区二区| 亚洲日本aⅴ片在线观看香蕉| 黄页网站在线看| 欧美高清xxx| 欧洲亚洲精品在线| 老熟妇仑乱视频一区二区| 91九色美女在线视频| 玉米视频成人免费看| 亚洲一区二区在线免费观看| 欧美理论在线观看| 99久久国产综合色|国产精品| 亚洲影院色无极综合| 在线观看日韩一区二区| 日韩在线一区二区| 国产成人在线视频| 日本久久综合网| 国产一区白浆| 欧美亚洲国产另类| 成人毛片18女人毛片| 亚洲国产裸拍裸体视频在线观看乱了中文 | 婷婷一区二区三区| 国产无限制自拍| 福利网站在线观看| 亚洲国产精品久久一线不卡| 国产又粗又猛又爽又黄的网站| 黄视频在线观看网站| 亚洲欧洲日韩在线| 免费久久久久久| 成人黄视频在线观看| 亚洲人精品一区| 国产高清不卡无码视频| 在线视频观看国产| 亚洲一卡二卡三卡四卡五卡| 成人在线视频一区二区三区| av蜜臀在线| 色噜噜久久综合| 亚洲欧美在线精品| 亚洲欧美在线人成swag| 91麻豆精品国产| 久久久久久久久久久久国产精品| 国产精品99久久免费观看| 亚洲精品白浆高清久久久久久| 性囗交免费视频观看| 亚洲男人都懂第一日本| 一区二区欧美激情| 男女性高潮免费网站| 黑人一区二区| 国产91网红主播在线观看| 午夜久久久久久久久久影院| 韩国视频一区二区| 成人综合av网| 国产香蕉视频在线看| 国产精品久久777777| 色婷婷777777仙踪林| 18aaaa精品欧美大片h| 欧美日韩性视频在线| 无人在线观看的免费高清视频 | 欧美午夜在线一二页| 国产大片一区二区三区| 美女av一区| 中国人与牲禽动交精品| 麻豆亚洲av成人无码久久精品| 国产欧美91| 国产在线视频91| 婷婷五月综合激情| 中文字幕高清一区| 免费av手机在线观看| 亚洲第一会所001| 日韩欧美的一区| 久久午夜福利电影| 国产综合欧美| 国产精品久久久久久久久久99 | 国产精品狼人色视频一区| 国产精品无码专区| 欧美gay男男猛男无套| 午夜精品久久久久久久99热| 久久久久久久久久一级| 成人亚洲一区二区一| 先锋在线资源一区二区三区| 午夜伦理在线视频| 在线观看日产精品| 成人做爰www看视频软件| 成人在线免费观看网站| 国内自拍欧美激情| 国产精品无码一区二区桃花视频 | 国产日韩欧美精品| 午夜视频在线观看网站| 欧美日韩中文字幕在线| 性生活在线视频| 奇米影视亚洲| 欧美自拍视频在线观看| 亚洲精品911| 国产精品成人网| 黄色一级大片在线观看| 成人爽a毛片| 久久久精品视频在线观看| 九九热精品视频在线| 成人永久免费视频| 一道本在线观看视频| 日韩毛片一区| 亚洲免费一在线| 日韩xxxxxxxxx| 懂色一区二区三区免费观看| av磁力番号网| 高清在线一区二区| 久久九九免费视频| 日日夜夜操视频| 久久91精品久久久久久秒播| 国产成人一区二区三区免费看| 久青青在线观看视频国产| 亚洲免费伊人电影| 农村妇女精品一二区| 91成人福利| 国产午夜精品美女视频明星a级| 黄色在线观看国产| 成人做爰69片免费看网站| 男同互操gay射视频在线看| 国产亚洲精品码| 日韩欧美精品综合| 国产精品久久久久久久久久尿| 天堂av在线资源| 欧美日韩亚洲精品内裤| www.超碰97| 久久www成人_看片免费不卡| 欧洲亚洲一区二区三区四区五区| av电影一区| 亚洲午夜女主播在线直播| 欧美日韩在线视频播放| 国产精品福利av| 99999精品| 黄色日韩在线| 乱色588欧美| 91伊人久久| 久久精品亚洲一区| www.激情五月| 精品国产999| 丰腴饱满的极品熟妇| 免费久久精品视频| 正义之心1992免费观看全集完整版| 日本免费在线一区| 九九精品视频在线观看| 国产综合在线播放| 日韩欧美中文免费| 日韩视频在线观看免费视频| 老司机一区二区| 高清无码视频直接看| 青青久久av| 国产精品旅馆在线| 国产二区三区在线| 亚洲精品国产精品国自产在线 | 久久成人在线| 一级做a爰片久久| 一区二区三区在线资源| 欧美中在线观看| 欧美一区二区三区| 亚洲国产欧美一区| 中文字幕一区二区人妻| 夜夜亚洲天天久久| 先锋资源av在线| 裸体素人女欧美日韩| 制服诱惑一区| 国内精品麻豆美女在线播放视频| 国产精品扒开腿做爽爽爽男男| 色综合久久影院| 日韩大片在线观看视频| 国产一区二区在线视频观看| 亚洲成在人线在线播放| 日韩欧美黄色网址| 成人av网址在线| 中文字幕视频三区| 国产日韩精品视频一区二区三区| 一区二区三区在线视频111 | 日韩电影大全在线观看| 国产精品亚洲欧美一级在线| 国产91ⅴ在线精品免费观看| 日本在线看片免费人成视1000| 亚洲精品动漫久久久久| 国产片在线播放| 日本韩国欧美国产| 久久久久久久伊人| 亚洲视频一区二区免费在线观看| theav精尽人亡av| 国产成人一级电影| 97超碰人人爽| 日韩av一区二区在线影视| 亚洲 欧美 综合 另类 中字| 欧美3p在线观看| 精品高清视频| 亚洲日本va| 91久久在线播放| 久久精品xxxxx| 国产精品久久久久久av下载红粉| cao在线视频| 欧美激情xxxx| gogogogo高清视频在线| 在线电影中文日韩| 人人九九精品| 日韩精品视频中文在线观看| 高h放荡受浪受bl| 日韩欧美一区二区免费| 91国产精品一区| 欧美在线视频不卡| 精品久久久久久久久久久国产字幕| 亚洲二区在线视频| 青娱乐国产在线| 玉足女爽爽91| 精品人妻在线播放| 一区二区三区国产精品| 成年人午夜剧场| 亚洲日本护士毛茸茸| 91禁男男在线观看| 日本一区二区三区久久久久久久久不 | 中文字幕亚洲综合久久| yiren22综合网成人| 亚洲欧洲成视频免费观看| 亚洲av电影一区| 日韩电影免费在线观看中文字幕 | 亚洲区免费影片| 精品999视频| 亚洲免费电影在线观看| 欧美 日韩 中文字幕| 日韩午夜激情av| 黑人操亚洲女人| 亚洲精品乱码久久久久久金桔影视 | 欧美一区二区三区网站| 色中色一区二区| 中文有码在线播放| 欧美日韩国产影片| 国产普通话bbwbbwbbw| 日韩欧美一级二级三级| 日本毛片在线观看| 日韩精品一二三四区| 成年人视频在线看| 久久久精品在线| 美女精品视频| 2019av中文字幕| 免费观看成人性生生活片| 国产精品视频一| 精品国产亚洲日本| 精品无码久久久久国产| 国内成人精品| 午夜在线视频免费观看| 欧美特黄一级| 北条麻妃在线视频| 激情成人综合网| 91成人在线观看喷潮蘑菇| 成人免费不卡视频| 在线不卡av电影| 17c精品麻豆一区二区免费| 九九久久免费视频| 色婷婷久久综合| 国产白浆在线观看| 亚洲精品综合久久中文字幕| 91高清在线| 国产综合在线视频| 日本精品裸体写真集在线观看| 91美女福利视频高清| 麻豆精品99| 精品少妇人妻av一区二区| 国产精品久久久久久模特| 国产视频1区2区3区| 国产不卡高清在线观看视频| 91视频免费观看网站| 亚洲男人的天堂一区二区| 在线观看黄网站| 欧美一区二区三区喷汁尤物| 日本天堂影院在线视频| 久久久999精品免费| 阿v视频在线| 91久久中文字幕| 欧美欧美黄在线二区| 亚洲乱码日产精品bd在线观看| 久久人人精品| 中文字幕在线永久| 亚洲日本护士毛茸茸| 中文字幕二区三区| 日韩成人av在线| 欧美videossex另类| 国产精品香蕉在线观看| 台湾佬综合网| www.男人天堂网| 狠狠色丁香婷婷综合| 久久亚洲AV无码专区成人国产| 亚洲高清免费一级二级三级| 国产一区二区三区视频免费观看| 国产丝袜一区二区三区免费视频| a级影片在线| 国产日韩精品视频| 蜜桃一区二区三区| 亚洲一区二区三区av无码| 狠狠久久亚洲欧美| 日本午夜精品视频| 色噜噜狠狠色综合欧洲selulu| 黄色片网站免费在线观看| zzjj国产精品一区二区| 国产私拍福利精品视频二区| 精品欧美一区二区久久久伦| 欧美日韩一卡| 免费国偷自产拍精品视频| 日韩一区在线播放| 中文字幕乱码视频| 一区二区三欧美| 欧美成人性网| 欧美一进一出视频| 噜噜爱69成人精品| 91精品国产自产| 精品久久久在线观看| 手机看片福利在线| 久久久久久久久亚洲| 亚洲三级av| 国产精品av免费观看| 国产精品伊人色| 国模无码国产精品视频| 日韩亚洲欧美中文三级| av片在线观看网站| 97久久夜色精品国产九色 | 精品午夜电影| 成人在线国产视频| 成人av午夜影院| 一级片中文字幕| 亚洲人成网站777色婷婷| 玛雅亚洲电影| 日韩电影大全在线观看| 麻豆精品一二三| 免费成人深夜夜行网站| 欧美久久久一区| av在线免费观看网址| 亚洲永久免费观看| 亚洲国产日韩在线| 91精品国产自产| 欧美在线制服丝袜| 欧美激情视频在线播放| 亚洲一区中文字幕在线观看| 欧美日韩亚洲一区三区| 日韩精品一区二区三区高清免费| 都市激情亚洲色图| 成黄免费在线| 2020国产精品久久精品不卡| 伊人蜜桃色噜噜激情综合| 亚州av综合色区无码一区| 色综合久久综合中文综合网| av基地在线| 97视频热人人精品| 国产一级一区二区| 黄色av片三级三级三级免费看| 91麻豆精品久久久久蜜臀| 成人三级小说| 日本一区视频在线观看免费| 久久国产成人午夜av影院| 激情综合五月网| 国产一区二区动漫| 96视频在线观看欧美| 国产69精品久久久久久久| 国产欧美中文在线| 精品久久人妻av中文字幕| 4388成人网| 91精品高清| 可以直接看的无码av| 欧美巨大另类极品videosbest| 免费不卡av| 色婷婷精品国产一区二区三区| 国产一区二区三区国产| 欧美一区二区三区网站| 九九久久精品一区| 欧美一区二区三| 95视频在线观看| 欧美精品日日鲁夜夜添| 天堂在线中文网官网| 色撸撸在线观看| 国产亚洲精品精华液|