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

當我們談論DDD時我們在談論什么

原創 精選
開發
我嘗試在軟件設計領域,將這些問題劃分到幾個相互獨立的范疇,這可以幫助我和其他人討論,在明確范圍內可以更好的交流。

作者 | 祁兮

談論到 DDD,我們會聊事件風暴,會聊限界上下文,會聊六邊形架構,會聊實體值對象。這些概念各不相同,相關的概念也很不一樣,但都屬于DDD的范疇。見過了很多DDD的討論和工作坊,我發現大家唇槍舌劍無法達成一致,往往是因為各自腦中的問題并不相同。

我嘗試在軟件設計領域,將這些問題劃分到幾個相互獨立的范疇,這可以幫助我和其他人討論,在明確范圍內可以更好的交流。

一種比較經典的方式是劃分為戰略設計和戰術設計。由于領域模型設計復雜度也很高,所以我又把領域模型設計從戰術設計中劃分出來,形成單獨的范疇,以便更好的討論。

下面我將討論這三個范疇的概念和方法。

一、DDD戰略設計

在這個范疇里,主要討論目標是復雜的業務需求。有多復雜呢?可能需要多個團隊分工合作,或者一個團隊分階段開發,需要被設計成多個獨立部署運行的服務,會有多個代碼庫。

這個范疇可以有很多名字,比如DDD戰略設計、進程間架構、微服務架構設計等。

在這個范疇里討論的主要問題是,如何將這個復雜的業務需求合理的分成多個部分,從而分而治之。

為什么要分成多個部分?因為解決復雜問題的一個有效方法是將其分解為多個相對簡單的問題,然后分別解決。如果不進行分解,這個復雜問題往往會讓我們在解決過程中陷入困境,就算設計出了解決方案,也往往由于解決方案過于復雜導致團隊的認知超載。

1.劃分方法

既然戰略設計需要將整個業務需求分成多個部分,那么如何找到用于劃分的接縫呢?

我看到行業里有這樣一些方法:

(1) 限界上下文

在《領域驅動設計》中,Eric提出了限界上下文。從領域模型設計的角度,為了讓模型保持完整獨立和清晰,需要識別出限界上下文,讓其作為模型的邊界。在書中并沒有完善的識別方法,更多的是提出一些概念。限界上下文往往被用來輔助判斷接縫的正確性。

在一個限界上下文中,領域知識是相對完整的。

(2) 核心域

在《領域驅動設計》中,Eric提出了精煉及核心域。在模型中識別出最有價值的核心域,將其獨立出來。

由于只提到了核心域,所以這也不是一個完整的劃分的方法。我曾在如何劃分限界上下文博客中基于此方法上提出了一種分解問題域的方法。

(3) 事件風暴工作坊

事件風暴工作坊可能是最早用來指導劃分限界上下文的方法。

對前一步(事件風暴)產生的聚合進行分組,通過業務的內聚性和關聯度劃分邊界,結合限界上下文的定義進行判斷,并給出上下文名稱。

——[服務化設計階段路徑方案]

但是「業務的內聚性和關聯度」著實不是一個好的劃分依據。而事件風暴的創始人Alberto曾經提出過通過關鍵事件識別不同的階段進而識別限界上下文的方法,看上去是一個更加靠譜的方法。

(4) 8X Flow

8X Flow中提出了一套相對完整的劃分方法。首先定義「業務」和「領域」,然后將「業務」和「領域」劃分開來,接著基于合同將業務劃分成了不同的上下文,最終完成了劃分。

(5) 現代企業架構白皮書

現代企業架構白皮書提出通過職責類型劃分。流轉類識別不同的業務流程階段,規格類提取業務規則,視圖類專為統計報表而存在,配置類提供配置工具。

2.重新思考

我也嘗試過一些其他的劃分方法,比如通過時間階段劃分,通過使用者不同劃分,通過使用場景不同劃分,通過變化頻率不同劃分。這些方法和上面的一些方法都有些相似。

不好的劃分方法可能會導致分布式單體:每次變化不得不修改多個服務、每次部署必須同時部署多個服務,服務之間有非常多的通信,同一個團隊管理著多個服務,服務之間共享數據庫、同樣的代碼和模型。

也許我們可以總結出一些原則,來幫助我們驗證劃分是否合理。比如高內聚低耦合,比如服務有明確的邊界且能自治,可以獨立演進,比如盡可能減少對于其他服務的依賴。

二、DDD戰術設計

在戰略層面劃分好了服務后,我們來看看一個服務內部。

在這個范疇里,主要討論在一個服務內部,如何劃分和組織代碼。

和上一節類似,在代碼也有不同的職責;和上一節不同,對于代碼層面的劃分,已經有相對成熟的方法。

這個范疇可以有很多名字,比如DDD戰術設計、進程內架構、分層架構等。

需要指出的是,在一個服務內部,如果領域模型足夠復雜,在分離領域邏輯和技術實現細節前,也需要先按照模塊進行一次劃分,然后再按上述的領域邏輯和技術實現細節的方式劃分。相關討論可以參見前綴分包vs后綴分包。

1.劃分方法

(1)《領域驅動設計》中的分層架構

Eric在2003年提出的分層架構。和傳統的展示層+業務邏輯層+數據訪問層的三層架構相比多了一層,主要區別是將業務邏輯層分成了應用層和領域層。

圖片

圖片引自《領域驅動設計》第4章

其中「應用層」這個概念,也指明了它和領域層的區別:領域層專注表達領域概念,而應用層則在領域層之上,加入了諸如持久化概念和事務概念等軟件的典型概念,對外提供了滿足具體場景的功能。展示層則在應用層功能之上,定義了和外部系統通信的具體形式。

這里也將數據訪問層變成了基礎設施層。基礎設施層為其他層提供支撐其概念的具體技術實現。

(2) 六邊形架構

2005年六邊形架構(翻譯)又稱端口和適配器架構,從設計模式的視角將代碼劃分成了負責業務邏輯的「應用」和負責同外部系統交互的「適配器」。

圖片

圖片引自《六邊形架構》

在2013的IDDD中Vaughn將六邊形架構和DDD進行了結合,把「應用」又細分成了「應用程序」和「領域模型」。

圖片

圖片引自《實現領域驅動設計》第4章

2008年的洋蔥架構也是類似的。

六邊形架構從另外一個角度審視了一個理想架構,并將領域層放在中心,凸顯其核心地位。

(3) 整潔架構

Uncle Bob在2012提出了整潔架構,一般來說我們認為整潔架構的四層(四圈)和IDDD的六邊形架構基本是對應的,只是整潔架構將適配器劃分成了和框架耦合的「Frameworks & Drivers」層和負責內外層數據轉換的「Interface Adapters」層。

圖片

圖片引自《整潔架構》

整潔架構也用「用例」來描述業務實體之外的一層,對應于「應用層」,更明確的指明了這層的職責是實現各個用例。

比較有趣的是,整潔架構把Gateway接口放到了領域層之外的「用例層」。這使得領域層只關注于當前上下文的邏輯,而讓用例層負責和其他上下文/資源庫的協調和編排。

整潔架構也討論了如何處理框架和架構的關系。

(4) 清晰架構

2017年更有集DDD、洋蔥架構、整潔架構、CQRS于一體的清晰架構出現。

2.重新思考

以上的架構,指導每一個具體的業務功能分解來說是非常夠用的。然而在一個真實的項目中,除了每個具體功能的分層,其實還有一些對于平臺和框架的配置,這些其實要和每個業務功能的代碼有所區分,從代碼結構上獨立出來。

另外,每一層都會有一些可以復用的代碼。比如領域層的基礎的業務異常,應用層的事務處理,適配器層的HTTP客戶端。這些不只用于單個模塊或者單個服務,也可以用于多個服務;有些已經有三方工具,有些需要我們自己定義和封裝。

我看到很多項目對于以上兩類代碼并沒有區分,而是把一切不屬于其他層的代碼都放到了基礎設施層。讓可憐的基礎設施層逐漸變成了垃圾桶。

三、領域模型設計

在戰術層面劃分好架構后,我們來看看位于核心的領域模型。

在這個范疇里,主要討論基于面向對象技術,如何用領域模型來表達業務概念。

為什么要使用領域模型這種模式,而不是用Service+數據模型的模式呢?如果復雜的業務邏輯采用數據模型這種模式,那么Service里會存在大量的復雜的邏輯,代碼是很難維護的。而領域模型充分利用了面向對象技術的優勢,將復雜度轉變為職責明確的組件組合,讓各個組件相對簡單,來降低認知負載,提升可維護性。這就是設計的力量。

那為什么用面向對象技術呢?面向對象思想更加符合我們認知復雜問題的方式,并且現代編程語言都普遍支持面向對象,所以DDD選擇了面向對象技術。

1.關注點分離模式

在這個范疇里,主要還是使用《領域驅動設計》中的模式。我們以關注點分離的角度,來解析這些模式。

(1) 領域對象的生命周期類型

從生命周期的角度,「領域對象」分為這樣幾個類型:

  • 和應用生命周期一致,應用啟動時被創建出來,應用關閉時才銷毀。比如《領域驅動設計》5.4.1中的「資金轉賬」。
  • 在業務過程中被創建,會被保留一段時間,不隨著應用關閉銷毀。比如電商系統中的「訂單」。
  • 在業務過程中被創建,在使用完成后即被銷毀。比如一些在對象之間傳遞的參數對象。

而在《領域驅動設計》的第5章,Eric也將領域對象劃分為了實體、值對象、領域服務這三個重要模式。這三個模式和生命周期是如何對應的呢?

對于類型1,和應用生命周期一致,就是領域服務這種模式。對于類型2,在業務過程中被創建,會被保留一段時間,對應于實體和值對象。而對于類型3,在業務過程中被創建隨即被銷毀,對應于值對象。

VALUE OBJECT 經常作為參數在對象之間傳遞消息。它們常常是臨時對象,在一次操作中被創建,然后丟棄。

——《領域驅動設計》 5.3 值對象

(2) 分離領域對象的創建、查詢、保存和使用

從生命周期角度,對于這三類領域對象的創建邏輯,可以使用Factory模式,將其封裝在Factory中。對于類型2的領域對象的保留及之后的查詢,可以使用Repository模式,將其模擬成一個集合從而進行存取操作。

Eric把Factory和Repository被歸為「支持對象」,以和其他用于表示模型的領域對象分開。

(3) 分離函數和命令

使用無副作用的函數模式,把沒有副作用的查詢邏輯提取出來,成為無副作用的函數,而讓有副作用的命令盡可能簡單。

基于同樣的理由,我也在考慮將有IO操作的邏輯提取出來,直接讓應用層調用,而不是和其他業務邏輯組合。

(4) 分離領域中的算法

使用Strategy模式,把業務邏輯中的變化點放到策略對象中,讓不同的實現可以互換,從而實現關注點分離。

(5) 分離領域中的規則

使用Specification模式,將領域中用于判斷是非的業務規則放到規格對象中。

(6) 分離做什么和怎么做

采用Intention-Revealing Interface和Cohesive Mechanism模式,把「做什么」和「怎么做」分離。讓釋意接口專注于表明意圖,方便調用方使用;讓內聚機制封裝實現細節,在釋意接口背后解決問題。

2.重新思考

我發現在OO BootCamp中得到的模型往往無法直接用于真實項目中,這讓我用新的角度重新學習和思考了領域模型。

在實際項目中,設計者往往過早陷入對于一些具體模式的識別,比如實體、聚合、領域服務,而忽略了如何設計一個可以表達領域概念的模型。我們應該基于領域概念設計領域模型,然后再采用合適的模式降低領域模型的復雜度,進一步增加領域模型的表達能力。

很多項目雖然也使用了以領域為核心的架構,但是設計者仍然是數據模型/貧血模型的思考方式,把大量領域邏輯放置在了萬能的Service中,讓領域概念隱藏在了冗長的過程代碼中,絲毫沒有享受到DDD帶來的收益。

軟件的核心是其為用戶解決領域相關的問題的能力。

——《領域驅動設計》 第一部分

在學習了讓我們眼花繚亂的眾多方法后,我們重新回到DDD的初衷,重新審視軟件設計和DDD之間的關系,讓DDD幫助我們提升軟件設計能力。

原文鏈接:??當我們談論DDD時我們在談論什么 (qq.com)??

責任編輯:趙寧寧 來源: 51CTO
相關推薦

2024-07-26 08:35:29

2020-11-16 15:47:05

SaaS軟件轉型

2016-08-12 10:11:22

2022-07-05 09:31:46

基礎設施容器Docker

2019-02-19 10:22:07

5G5G手機5G技術

2017-04-05 17:59:29

思科CTO下午茶

2024-03-28 14:16:43

容災云計算

2022-04-28 13:02:32

cpu指令編程

2019-03-18 10:08:18

RSACRSA大會 網絡安全

2019-06-04 14:36:04

高并發Java架構

2014-02-06 12:21:35

軟件集成

2022-03-11 21:28:31

部署開發服務器

2023-08-28 10:33:09

敏捷Scrum理念

2019-07-30 13:12:22

2019-12-24 11:19:44

容器DockerLinux

2016-11-22 23:44:56

2017-10-11 08:40:29

VR服務器移動端

2017-03-07 15:43:28

編程語言函數數據結構

2017-10-11 13:25:00

前端

2021-11-18 21:09:50

流批場景引擎
點贊
收藏

51CTO技術棧公眾號

这里只有精品免费| 国产精品日日摸夜夜摸av| 97视频人免费观看| 天天躁夜夜躁狠狠是什么心态| www.成人在线视频| 一区二区三区在线播| 久久综合久久久| 中文字幕日韩经典| 精品动漫3d一区二区三区免费版 | 4p变态网欧美系列| 日韩丰满少妇无码内射| 视频二区欧美| 日本韩国视频一区二区| 99久热在线精品视频| 涩爱av在线播放一区二区| 免费成人在线网站| 欧美亚洲视频在线看网址| 久草福利资源在线| 欧美人与拘性视交免费看| 欧美一区二区三区影视| wwwwww.色| 免费v片在线观看| 亚洲男女一区二区三区| 五月天久久综合网| 日韩porn| heyzo一本久久综合| 成人国产精品一区| 老熟妇一区二区三区啪啪| 999在线观看精品免费不卡网站| 日韩在线观看免费高清| xxx在线播放| 日韩欧美中文字幕电影| 精品奇米国产一区二区三区| 五月激情婷婷在线| 日韩不卡在线| 91福利在线免费观看| 鲁一鲁一鲁一鲁一色| 欧美日韩经典丝袜| 亚洲精品视频观看| 老汉色影院首页| 日本三级在线播放完整版| 久久久久久久久岛国免费| 黄色一区三区| 欧美特级特黄aaaaaa在线看| 国产高清成人在线| 亚洲精品欧美极品| 国产女人18毛片水真多| 狠狠色丁香久久婷婷综| 成人乱色短篇合集| 国产激情久久久久久熟女老人av| 久久精品二区亚洲w码| 国产精品爽爽爽| 在线播放一级片| 久久爱另类一区二区小说| 国产精品老女人精品视频| 蜜臀99久久精品久久久久小说 | 国产精品毛片久久| 久久精品视频免费播放| 99久久婷婷国产综合| 艳女tv在线观看国产一区| 久色乳综合思思在线视频| 国产一区二区精彩视频| 欧美成人一区二免费视频软件| 久久九九亚洲综合| 激情五月少妇a| 激情综合网址| 琪琪第一精品导航| 最新国产中文字幕| 激情欧美一区二区| 国产成人女人毛片视频在线| 天堂网在线中文| 国产婷婷色一区二区三区| 色综合久久88色综合天天提莫| 在线观看免费版| 亚洲视频每日更新| 黄色大片中文字幕| 性欧美18~19sex高清播放| 日本韩国一区二区三区| 天美一区二区三区| 欧美人与动xxxxz0oz| 亚洲欧美日韩国产成人| 青青青视频在线播放| 91精品啪在线观看国产81旧版| 久久久久国色av免费观看性色 | 欧洲国产精品| 国产在线高清视频| 亚州成人在线电影| 亚洲第一狼人区| 凹凸av导航大全精品| 一本色道久久综合亚洲精品小说 | 欧美专区一区二区三区| 国产免费久久av| 日本加勒比一区| 国产欧美久久久精品影院| 国产手机视频在线观看| 亚洲天堂手机| 日韩欧美一级二级三级久久久| 国产艳俗歌舞表演hd| 91日韩欧美| 欧美一级电影久久| 国产农村妇女毛片精品| 26uuu亚洲| 久久男人资源站| 91成人抖音| 亚洲成人精品久久久| 99国产精品无码| 免费在线播放第一区高清av| 亚洲最大福利网| 国产日产精品久久久久久婷婷| 亚洲综合一二三区| 在线免费视频一区| 亚洲精品中文字幕99999| 美日韩精品视频免费看| 国产精品成人无码| 久久久久久久精| 无码 制服 丝袜 国产 另类| 日日夜夜亚洲精品| 国产亚洲一区二区在线| 日韩久久久久久久久| 国产乱人伦精品一区二区在线观看 | 国产精品成人午夜| 成人在线看视频| 超碰在线一区| 九九视频这里只有精品| 国产又粗又长又大视频| 国产日韩综合av| 国产三区在线视频| 日韩欧美ww| 91精品国产91| 天天摸夜夜添狠狠添婷婷| 一区二区欧美国产| 永久av免费在线观看| 91影院成人| 国产精品一区二区三区免费视频| 国产在线观看免费| 色综合久久九月婷婷色综合| 亚洲调教欧美在线| 亚洲青色在线| 久久av一区二区三区亚洲| 成人在线黄色电影| 亚洲国产99精品国自产| 日操夜操天天操| 99久久精品免费精品国产| 日韩av高清在线看片| 一区二区三区在线免费看| 欧美黑人xxxⅹ高潮交| 性欧美18一19性猛交| 一区二区三区四区亚洲| 免费黄视频在线观看| 狠狠入ady亚洲精品经典电影| av日韩免费电影| 成年人黄色大片在线| 日韩国产一区三区| 久久久蜜桃一区二区| 欧美国产一区在线| 国产无遮挡猛进猛出免费软件| 水蜜桃久久夜色精品一区| 成人羞羞国产免费| 欧美videosex性极品hd| 亚洲电影在线看| 国产成人愉拍精品久久| 久久众筹精品私拍模特| 啊啊啊国产视频| 亚洲国产老妈| 国产 高清 精品 在线 a| 波多野结衣在线高清| 日韩不卡中文字幕| 久久这里只有精品9| 国产精品久久久久精k8| 日本亚洲一区二区三区| 亚洲麻豆一区| 日韩在线三区| 麻豆精品在线| 性欧美亚洲xxxx乳在线观看| 美州a亚洲一视本频v色道| 欧美日韩黄色影视| 免看一级a毛片一片成人不卡| 不卡一区在线观看| 国产精品入口免费软件| 亚洲色图插插| 久久久影院一区二区三区| a屁视频一区二区三区四区| 久久精品国产免费观看| 天天干天天舔天天射| 欧美视频日韩视频| 九九视频免费在线观看| 久久九九影视网| 国产又粗又猛大又黄又爽| 性色av一区二区怡红| 黄色一级片网址| 日韩高清一级| 亚洲一区二区三区久久| 亚洲精华液一区二区三区| 国产亚洲美女精品久久久| 999久久久久| 91极品视觉盛宴| 69av.com| 欧美激情中文字幕| 麻豆精品国产传媒av| 久久精品国产久精国产| 亚洲熟妇av日韩熟妇在线 | av网站手机在线观看| 精品国产一区二区三区久久久樱花| 91牛牛免费视频| 欧洲精品一区二区三区| 国内精品在线一区| 日本亚洲精品| 亚洲人成网7777777国产| www.成人免费视频| 欧美午夜免费电影| 啦啦啦免费高清视频在线观看| 最新久久zyz资源站| 亚洲国产欧美视频| 国产成人欧美日韩在线电影| 午夜欧美福利视频| 亚洲女人av| 日韩视频在线视频| 欧美高清不卡| 一区二区在线不卡| 国产不卡一区| 久久久av水蜜桃| 亚洲日本一区二区三区在线| 国产精品日日做人人爱| 日韩中文影院| 欧洲精品在线视频| 日本不良网站在线观看| 欧美激情乱人伦| www红色一片_亚洲成a人片在线观看_| 亚洲天堂av电影| 欧洲综合视频| 日韩成人中文字幕在线观看| 蜜桃av鲁一鲁一鲁一鲁俄罗斯的| 91精品国产综合久久精品图片| 中文字幕一区二区人妻痴汉电车| 色综合欧美在线| 国产精品免费精品一区| 天涯成人国产亚洲精品一区av| 国产性猛交普通话对白| 一区二区三区丝袜| 五月婷婷一区二区| 亚洲一区二区成人在线观看| 人妻少妇精品一区二区三区| 亚洲欧美一区二区三区久本道91| 少妇高潮一区二区三区喷水| 国产精品久久久久aaaa樱花 | 精品久久久中文| 日韩精品久久久久久久| 亚洲成av人片一区二区梦乃| 久久中文字幕在线观看| 亚洲午夜免费福利视频| 不卡的免费av| 黄网动漫久久久| 日韩精品在线不卡| 色综合一个色综合| 国产美女www爽爽爽| 欧美日韩一区二区三区视频| 一本色道久久综合亚洲| 欧美日韩高清影院| 国产成人精品毛片| 欧美不卡一二三| 婷婷五月综合激情| 亚洲欧洲一区二区三区在线观看| 国产中文在线| 久久精品视频一| 久草在线视频福利| 欧美伊久线香蕉线新在线| 久久99久久99精品免观看软件| 国产精品香蕉在线观看| 视频91a欧美| 成人h视频在线观看| 人妖一区二区三区| 视频三区二区一区| 亚洲乱码精品| 一女被多男玩喷潮视频| 日韩精品1区2区3区| 久久6免费视频| 豆国产96在线|亚洲| 自拍偷拍亚洲天堂| 中文字幕一区日韩精品欧美| 欧美成人三级在线观看| 精品动漫一区二区三区| 欧美另类高清videos的特点| 欧美va亚洲va香蕉在线| 青青草免费在线| 久久精品视频在线播放| 丁香花在线高清完整版视频| 日本成人精品在线| 精品久久国产一区| 久久一区二区精品| 婷婷综合伊人| 日韩av综合在线观看| 久久国产婷婷国产香蕉| 中文字幕 日本| 中文字幕一区二区三区精华液| 妺妺窝人体色www婷婷| 91国产福利在线| 蜜桃在线一区二区| 日韩亚洲第一页| 自拍在线观看| 91久色国产| 日本a口亚洲| 午夜精品久久久久久久无码| 狠狠色2019综合网| 自拍偷拍视频亚洲| 亚洲综合一区二区精品导航| 中文字幕乱码视频| 亚洲黄色在线看| 在线三级中文| 国产精品久久久久久婷婷天堂| 成人av动漫| 午夜在线视频免费观看| 日韩影院精彩在线| 久久久久亚洲AV成人无码国产| 成人欧美一区二区三区黑人麻豆 | 黑人巨大亚洲一区二区久 | 老熟妇高潮一区二区高清视频| 日韩在线观看av| 深夜视频一区二区| 久久久99爱| 国产亚洲福利| 永久免费未满蜜桃| 一区二区三区成人在线视频| 91高潮大合集爽到抽搐| 亚洲天堂av高清| 不卡av播放| 久久免费看av| 99精品国产在热久久婷婷| 91精品人妻一区二区三区四区| 亚洲色图欧洲色图| 一二三区中文字幕| 中文字幕亚洲专区| 国精产品一区一区三区四川| 免费日韩av电影| 久久久国产精品一区二区中文| 无码一区二区精品| 富二代精品短视频| 四虎精品一区二区三区| 国模极品一区二区三区| a看欧美黄色女同性恋| 女人色极品影院| 高清国产一区二区三区| 久久精品一级片| 精品国产凹凸成av人网站| 国产丝袜精品丝袜| 国产麻豆乱码精品一区二区三区 | 精品国产乱码久久久久久1区二区| 中文字幕第一区第二区| 中文字幕乱码人妻无码久久 | 国模私拍一区二区国模曼安| 国产精品一区二区你懂得| 在线成人欧美| 国产精品无码电影| 欧美性xxxx极品hd满灌| 欧洲成人av| 国产精品久久99久久| 日韩在线观看| 91在线第一页| 午夜亚洲福利老司机| 亚洲日本中文字幕在线| 国产成人一区二区在线| 欧美色图国产精品| 九九久久久久久| 亚洲制服丝袜一区| 色欲久久久天天天综合网| 欧美在线视频网站| 成人激情开心网| 免费人成视频在线播放| 亚洲成人动漫在线观看| 青青草在线免费观看| 国产精品十八以下禁看| 一区二区三区午夜探花| 午夜不卡久久精品无码免费| 色婷婷综合久久| www.久久ai| 蜜桃久久精品乱码一区二区| 美女视频免费一区| 免费无遮挡无码永久在线观看视频| 亚洲精品国产suv| 美女久久久久久| www.亚洲成人网| 成人性生交大片免费看网站| 欧美不卡在线视频| 成人片免费看| 国产成人精品免费看在线播放| 丁香天五香天堂综合| 91视频在线视频| 欧美老女人在线视频| 伊人久久大香线蕉无限次| 国产成年人视频网站| 亚洲一本大道在线| 2021av在线| 国产精品国模大尺度私拍| 蜜臀久久99精品久久久久久9| 久久一区二区三| 中文字幕在线视频日韩| 狠狠一区二区三区| 亚洲天堂av一区二区| 欧美性xxxx| 高清电影在线观看免费| 亚洲人成人77777线观看|