亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁(yè) > 課堂 > 技術(shù)開(kāi)發(fā) > 正文

UML系列內(nèi)容之十三:組件圖

2023-06-17 18:00:44
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

今天,本站帶領(lǐng)大家來(lái)熟悉一下UML中的組件圖。

1 什么是組件圖

組件圖(Component Diagram)又稱(chēng)構(gòu)件圖,是UML中描述一個(gè)系統(tǒng)中的物理方面的圖形,它是用來(lái)描述構(gòu)成系統(tǒng)的各個(gè)組件、組件提供的接口與需求的接口、端口以及它們之間關(guān)系的圖。

這種圖在基于組件開(kāi)發(fā)的系統(tǒng)建模中很重要。

組件圖可以幫助用戶理解系統(tǒng)的結(jié)構(gòu)。

2 組件圖的構(gòu)成

組件圖中主要包括組件、接口及其它們之間的關(guān)系三種元素。

2.1 組件

組件(Component)是定義了良好接口的、可重用的、可替代的物理實(shí)現(xiàn)單元,它一般表示實(shí)際存在的、物理的物件。

程序源代碼、可執(zhí)行文件、子系統(tǒng)、一個(gè)腳本、動(dòng)態(tài)鏈接庫(kù)(DLL)、ActiveX控件都可以成為系統(tǒng)中的組件。

組件隱藏了內(nèi)部實(shí)現(xiàn)的細(xì)節(jié),僅通過(guò)接口提供服務(wù)。

我們可以把組件理解為一個(gè)黑盒子,這個(gè)黑盒子使用接口來(lái)公開(kāi)其公共可見(jiàn)的屬性及操作,這一點(diǎn)與類(lèi)非常相似。

在UML1.x版本中,一個(gè)標(biāo)準(zhǔn)的組件使用如下的圖形來(lái)表示。

UML1.x中的組件表示圖形

而在UML2.x中一般使用如下的圖形來(lái)表示一個(gè)組件。

UML2.x中的組件

也可以使用類(lèi)似類(lèi)的矩形框加上構(gòu)造型<<component>>來(lái)表示組件,如下圖所示:

帶構(gòu)造型的組件表示方法

2.2 接口

組件中的接口主要分為兩類(lèi):提供接口(Provided Interface)和需求接口(Required Interface)。

提供接口又稱(chēng)導(dǎo)出接口,是組件提供的服務(wù)的集合。

提供接口是由組件本身直接實(shí)現(xiàn)的接口、或者是由實(shí)現(xiàn)組件的類(lèi)之一實(shí)現(xiàn)的接口,或者是由組件的公共端口提供的接口。

提供接口可以使用接口與組件之間的實(shí)現(xiàn)關(guān)系來(lái)表示。

提供接口可以在組件圖標(biāo)的邊框上使用類(lèi)似棒棒糖式(lollipop)的圖標(biāo)來(lái)表示。如下圖所示:

帶提供接口的組件

這個(gè)圖表示W(wǎng)eatherServices組件提供或?qū)崿F(xiàn)了WeatherForecast接口。

它可以認(rèn)為是下圖的簡(jiǎn)化表示方法:

組件的實(shí)現(xiàn)關(guān)系1

需求接口又稱(chēng)導(dǎo)入接口,是組件請(qǐng)求其它組件相應(yīng)服務(wù)時(shí)遵循的接口。

需求接口通過(guò)依賴關(guān)系來(lái)表示,需求接口可以使用插座(Socket)的圖標(biāo)連接到組件邊框上來(lái)表示,如下圖所示:

組件的需求接口

上面這個(gè)圖表示UserServices組件需要(依賴)IOrderServices接口。

它可以認(rèn)為是下圖的簡(jiǎn)化表示方法:

組件和接口間的依賴關(guān)系

作為一種可選方式,可以把組件的接口或組件的操作和屬性列在組件圖標(biāo)下邊的隔室里。

組件與接口間的表示方法

上面這個(gè)圖表示,UserServices接口提供的接口有IUserServices,需求的接口有IOrderServices。

2.3 端口

端口用于描述組件或類(lèi)與它的環(huán)境、與其它類(lèi)、與其它組件或內(nèi)部部件的交互點(diǎn)。這個(gè)交互點(diǎn)一般是組件或類(lèi)的一個(gè)屬性,默認(rèn)情況下,端口具有公共可見(jiàn)性。

端口使用類(lèi)或組件邊框上的一個(gè)小矩形來(lái)表示,如下圖所示:

組件和端口

上圖表示BorrowServices組件有一個(gè)borrowPort端口。

接口通過(guò)端口來(lái)提供服務(wù)或獲得服務(wù),下圖表示了這種情況:

組件的接口通過(guò)端口來(lái)提供服務(wù)或獲得服務(wù)

3 組件圖中的關(guān)系

組件圖中的關(guān)系主要包括兩種:依賴關(guān)系和實(shí)現(xiàn)關(guān)系

3.1 依賴關(guān)系

組件圖中的依賴關(guān)系與類(lèi)圖中相同,都是“供應(yīng)者-客戶”關(guān)系(supplier-client),使用虛線箭頭由客戶(client)組件指向供應(yīng)者(supplier)組件。

下圖表示組件“borrowBook”依賴于組件“Book”,其中,“borrowBook”是客戶組件,Book是供應(yīng)者組件。

組件之間的依賴關(guān)系1

下圖也表示了兩個(gè)組件之間的依賴關(guān)系,它表示了borrowBook組件的一個(gè)需求接口依賴于Book組件的一個(gè)提供接口:

組件和接口的依賴關(guān)系2

一般這種依賴關(guān)系都是從插座接口引出指向棒棒糖接口。

上圖也可以簡(jiǎn)化成下面的形式:

組件和接口的依賴關(guān)系3

上面這個(gè)圖表示了borrowBook使用某個(gè)需求接口與Book組件的提供接口產(chǎn)生依賴關(guān)系。

這種圖在UML2.x中被定義為連接。

3.2 實(shí)現(xiàn)關(guān)系

組件之間的實(shí)現(xiàn)關(guān)系表示一個(gè)組件實(shí)現(xiàn)了另外一個(gè)組件。這與類(lèi)和接口之間的實(shí)現(xiàn)關(guān)系相同。

下面第一個(gè)圖表示組件borrowBook實(shí)現(xiàn)了組件IBorrowBook。

如果IBorrowBook組件僅包含一個(gè)接口的話,也可以使用第二個(gè)圖來(lái)表示(見(jiàn)上面關(guān)于組件提供接口的說(shuō)明)。

組件和接口的實(shí)現(xiàn)關(guān)系

組件實(shí)現(xiàn)了一個(gè)接口意味著組件支持接口中的所有操作。

4 組件圖建模技術(shù)

Scott W.Ambler在其著作《The Object Primer:Agile Model-Driven Development with UML 2.0》第三版中給出了關(guān)于組件建模技術(shù)的一些方法和技巧:

敏捷模型驅(qū)動(dòng)的建模UML2.0

在實(shí)際組件建模中可以采用自頂向下的方法,也可以使用自底向上的方法。

使用自頂向下的建模方法可以使設(shè)計(jì)人員能夠更清晰的了解軟件的未來(lái)架構(gòu),但這種方法容易導(dǎo)致系統(tǒng)的過(guò)度架構(gòu)化,從而導(dǎo)致系統(tǒng)的過(guò)度建模,易使設(shè)計(jì)人員過(guò)度關(guān)注細(xì)節(jié),而忽略了客戶的真正需求。

使用自底而上的方法可以在類(lèi)建模的基礎(chǔ)上把已設(shè)計(jì)的類(lèi)進(jìn)行組件化,把系統(tǒng)中可重用的部分分離出來(lái),或者將應(yīng)用程序進(jìn)行拆分,以便把任務(wù)輕松地分配給相應(yīng)的團(tuán)隊(duì)。

在組件建模中可以使用如下步驟或原則進(jìn)行建模:

(1)保持組件的內(nèi)聚性

一個(gè)組件應(yīng)保持其功能單一性或功能相關(guān)性。如,一個(gè)組件僅包含某類(lèi)用戶的用戶界面、或者僅包含大規(guī)模領(lǐng)域概念的業(yè)務(wù)類(lèi),或者僅包含公共基礎(chǔ)概念的技術(shù)類(lèi)。

(2)將用戶界面類(lèi)分配給應(yīng)用程序組件

用戶界面類(lèi),如頁(yè)面、報(bào)告以及實(shí)現(xiàn)相關(guān)邏輯的類(lèi),應(yīng)該放在帶有“application”構(gòu)造型的組件中。如Java中JSP頁(yè)面、servlet和Swing類(lèi)等。

(3)把技術(shù)類(lèi)分配到基礎(chǔ)架構(gòu)組件中

實(shí)現(xiàn)系統(tǒng)級(jí)服務(wù)的類(lèi),如安全、持久性或中間件,應(yīng)該分配到帶有“infrastructure”構(gòu)造型的組件中。

(4)定義類(lèi)的契約

類(lèi)契約是指能夠直接響應(yīng)其它對(duì)象發(fā)送的消息的方法(操作)。

如在Books類(lèi)中很可能包括getBookInfo()這樣的方法,這樣的方法能夠響應(yīng)來(lái)自其它組件中對(duì)象發(fā)送的消息。

為了很好的識(shí)別組件,你可以忽略所有非類(lèi)契約的操作,原因是這些操作對(duì)促進(jìn)分布在不同組件中的對(duì)象之間進(jìn)行通信不會(huì)提供太大幫助。

(5)把一個(gè)具有層次結(jié)構(gòu)的所有類(lèi)(如類(lèi)的繼承或聚合層次結(jié)構(gòu))分配到相同組件中。

(6)識(shí)別領(lǐng)域組件

若干類(lèi)相互協(xié)作以完成特定的任務(wù),這些類(lèi)滿足內(nèi)聚要求,從而成為一個(gè)領(lǐng)域組件。其它類(lèi)或組件能夠通過(guò)向該領(lǐng)域組件發(fā)送消息以請(qǐng)求獲得信息或執(zhí)行操作。領(lǐng)域組件對(duì)外顯示出其簡(jiǎn)單性,但其內(nèi)部通常很復(fù)雜。領(lǐng)域組件設(shè)計(jì)的目標(biāo)是減少網(wǎng)絡(luò)通信,而使大多數(shù)信息流發(fā)生在其內(nèi)部。

(7)確定業(yè)務(wù)類(lèi)的協(xié)作類(lèi)型

服務(wù)器類(lèi)是接收消息但不發(fā)送消息的類(lèi);客戶類(lèi)是發(fā)送消息但不接收消息的類(lèi);客戶/服務(wù)類(lèi)是兼有發(fā)送消息和接收消息的類(lèi);在確定好每個(gè)類(lèi)的分布類(lèi)型后,就可以開(kāi)始確定潛在的領(lǐng)域組件了。

(8)把服務(wù)器類(lèi)歸為一個(gè)組件中

純服務(wù)器類(lèi)屬于領(lǐng)域組件,他們是應(yīng)用程序中消息流的“最后一站”。

(9)將僅為某客戶端類(lèi)服務(wù)的組件合并到其客戶組件中

如果一個(gè)領(lǐng)域組件僅為某一個(gè)組件提供服務(wù),那么可以把這兩個(gè)組件合并為一個(gè)組件。

(10)單純的客戶端類(lèi)不應(yīng)歸到領(lǐng)域組件中

客戶端類(lèi)只生成消息而不接收消息,不應(yīng)屬于領(lǐng)域組件。領(lǐng)域組件的目的是響應(yīng)消息。客戶端類(lèi)很可能屬于應(yīng)用程序組件。

(11)高度耦合的類(lèi)應(yīng)歸為一個(gè)組件中

兩個(gè)頻繁協(xié)作的類(lèi)應(yīng)位于相同的領(lǐng)域組件,以減少兩個(gè)類(lèi)之間的網(wǎng)絡(luò)流。即,高度耦合的類(lèi)應(yīng)放在一起。

(12)遵循最小化組件間的消息流原則

在確定一個(gè)客戶類(lèi)/服務(wù)類(lèi)屬于哪個(gè)組件時(shí),要充分考慮流入和流出類(lèi)的信息流。組件內(nèi)的通信通常是在內(nèi)存中對(duì)象之間簡(jiǎn)單的消息發(fā)送。組件間的通信往往需要消息的轉(zhuǎn)換、傳輸?shù)阮~外的支出。

(13)定義組件的契約

每個(gè)組件應(yīng)向客戶提供服務(wù),這樣的服務(wù)即為組件的契約。

5. 使用Rational Rose繪制組件圖

Rational Rose支持1.x的組件圖繪制方法,其能表示組件與接口之間的實(shí)現(xiàn)關(guān)系以及組件之間的依賴關(guān)系,但不能繪制“Socket”插座式的需求接口形式。用戶在實(shí)際中可以通過(guò)接口之間的依賴來(lái)表達(dá)。

5.1 新建組件視圖

在Rose中,在組件視圖(Component View)中創(chuàng)建組件圖,可以在Rose中左側(cè)的瀏覽器中的“Component View”上右擊,然后選擇“New”->“Component Diagram”。

5.2 新建組件

使用組件圖創(chuàng)建工具欄中的“組件”可以創(chuàng)建一個(gè)組件。

組件圖中的工具箱如下圖所示:

UML提供的組件圖工具

選“組件”工具后,在繪圖區(qū)點(diǎn)擊一下即可以完成一個(gè)組件的創(chuàng)建。

5.3 修改組件的名稱(chēng)

(1)用戶在創(chuàng)建組件時(shí),可以直接修改組件的名稱(chēng);

(2)在左側(cè)瀏覽器中,選中要修改名稱(chēng)的組件,然后右擊后選擇“Rename”,最后,輸入新的名稱(chēng)即可,具體如下圖所示:

Rose中為組件重命名

(3)在繪圖區(qū)中,在對(duì)應(yīng)的組件上右擊后,在彈出的快捷菜單中選擇“Open Standard Specification...”。

這個(gè)操作會(huì)打開(kāi)如下圖所示的對(duì)話框:

Rose中組件的詳述對(duì)話框

在這個(gè)對(duì)話框的“Name”中可以輸入新的組件名稱(chēng)。

5.4 刪除一個(gè)組件

在Rose中,要徹底刪除一個(gè)組件,可以通過(guò)以下幾種方式:

(1)在繪圖區(qū)中,右擊要?jiǎng)h除的組件,在彈出的快捷菜單中選擇“Edit”->“Delete from Model”菜單項(xiàng);

(2)選中要?jiǎng)h除的組件,按下“Ctrl+D”組合鍵,則可以快速刪除組件;

(3)選中要?jiǎng)h除的組件,選擇菜單欄中的“Edit”->“Delete from Model”菜單項(xiàng);

(4)在左側(cè)瀏覽器中,在要?jiǎng)h除的組件上右擊后,在彈出的菜單中選擇“Delete”。

以上的四種操作方法,將會(huì)把組件在所有模型中徹底刪除。

如果其它模型中使用了該組件,且只是把組件從當(dāng)前模型中的話,用戶可以選中組件后,直接按下鍵盤(pán)中的“Delete”鍵即可,或者右擊要?jiǎng)h除的組件后,在快捷菜單中選擇“Edit”->“Delete”也可以實(shí)現(xiàn)該操作。

5.5 定義組件的接口

在Rose中,可以為組件指定其要實(shí)現(xiàn)的接口(提供接口——Provided Interface),具體操作方法如下:

(1)右擊要設(shè)置的組件,在彈出的快捷菜單中選擇“Open Standard Specification...”;

(2)在彈出的對(duì)話框中選擇“Realizes”選項(xiàng)卡,該選項(xiàng)卡中列出了模型中所有的類(lèi)和接口,具體情形如下圖所示:

Rose中實(shí)現(xiàn)一個(gè)接口的方法

(3)在要實(shí)現(xiàn)的接口上右擊后,選擇“Assign”(分配)菜單項(xiàng)。

操作情形如下圖所示:

Rose中分配一個(gè)接口到組件

分配完接口后的組件及操作對(duì)話框后的情形如下圖所示:

Rose中分配接口之后的情形

我們可以看到,組件上多了兩個(gè)接口(提供接口),同時(shí)在“Realizes”列表中,以分配到該組件的接口上將出現(xiàn)紅色的“√”符號(hào)。

為組件指定實(shí)現(xiàn)的接口后的樣子如下圖所示:

Rose中帶實(shí)現(xiàn)接口的情形

它表示IBook和IReader接口在組件BorrowBooks中實(shí)現(xiàn)的,也表示BorrowBooks提供了IBook和IReader兩個(gè)接口(提供接口)。

如果用戶想把一個(gè)接口從組件中移除,用戶可以在列表中的組件上右擊后,在彈出的菜單中選擇“Remove Assignment”菜單項(xiàng)。

實(shí)際上,以上操作相當(dāng)于定義了組件和接口之間的實(shí)現(xiàn)關(guān)系。

用戶也可以使用同樣的方法,把組件中包含的類(lèi)分配到某個(gè)組件中。

(4)添加依賴關(guān)系

組件圖中的依賴關(guān)系需要借助工具欄中的“依賴”工具來(lái)實(shí)現(xiàn)。

具體操作辦法如下:

①用戶點(diǎn)擊“依賴”工具;

②在依賴元素上點(diǎn)擊后,一直按住鼠標(biāo)左鍵,拖動(dòng)鼠標(biāo)到被依賴元素上松開(kāi)鼠標(biāo)左鍵,則完成了元素之間的依賴關(guān)系。

如下圖顯示了組件“Fine”和接口“IFineRecords”之間的依賴關(guān)系。

Rose中接口與組件的依賴

它相當(dāng)于組件的需求接口(Required Interface)。

6. 使用Visio繪制組件圖

Visio中雖然提供了一些繪制UML圖的模板,但沒(méi)有提供專(zhuān)門(mén)繪制組件圖的模板。但用戶可以在Pavel Hruby博士的網(wǎng)站上下載專(zhuān)門(mén)用于繪制UML圖的Visio模具包。

Visio中繪制組件圖

這個(gè)Visio模具包叫“Visio Stencil for UML”。

該模板可以支持UML2.5中的各種圖形,包括用例圖、類(lèi)圖、時(shí)序圖、包圖、狀態(tài)機(jī)圖、組件圖等。

可以在微信搜索“優(yōu)雅的代碼”訂閱號(hào),關(guān)注后,消息中回復(fù)“visio uml”關(guān)鍵字來(lái)獲取該模板的下載地址。

下載后,把這個(gè)模具包解壓縮到你的電腦某個(gè)磁盤(pán)中的某個(gè)目錄中以備使用。

6.1 把下載的模具加載到Visio中

Visio Stencil for UML針對(duì)不同的Visio版本有不同的模具。正常情況下高版本的Visio可以支持低版本的Visio Stencil for UML。

(1)打開(kāi)Visio,新建繪圖;

(2)選擇“更多形狀”,然后選擇“打開(kāi)模具”;

(3)選擇你解壓縮后的Visio Stencil for UML模具。

這樣,就可以把下載的模具加載到繪圖區(qū)中來(lái)了。

你也可以把下載解壓縮的文件放到Visio默認(rèn)的模具路徑中,具體操作方法為:

在“文件”菜單中選擇“選項(xiàng)”,然后在左側(cè)選擇“保存”項(xiàng),在右側(cè)列出的內(nèi)容中找到“默認(rèn)個(gè)人模板位置”,這里是模板保存的路徑,你可以把解壓縮后的Visio Stencil for UML文件復(fù)制到這個(gè)文件夾中。

或者你在這里直接輸入Visio Stencil for UML所在的路徑。

6.2 Visio Stencil for UML提供的主要模板

下圖顯示了這個(gè)工具中提供的繪制UML圖的全部圖形符號(hào)。

Visio中提供的繪制組件圖的圖形工具

同時(shí),在下載的工具中也提供了一些UML其它的構(gòu)造型符號(hào)供設(shè)計(jì)時(shí)使用。

6.3 往繪圖區(qū)添加組件

(1)添加一個(gè)組件

在左側(cè)形狀中,選擇“Component”(組件),然后把它拖曳到繪圖區(qū)中來(lái)。

(2)輸入名稱(chēng)

雙擊組件符號(hào),輸入或修改組件的名稱(chēng)。

(3)調(diào)整組件顯示大小

如果需要調(diào)整組件的大小,可以選中組件,在其周?chē)鷷?huì)出現(xiàn)若干個(gè)白色的小方塊,如下圖所示:

Visio中調(diào)整圖形的大小

鼠標(biāo)到上面會(huì)變成雙向箭頭的形狀,然后按住鼠標(biāo)左鍵,通過(guò)拖拽來(lái)改變圖形的顯示大小。

(4)修改字體

選中組件后,在“開(kāi)始”功能區(qū)的“字體”分組中可以修改字體、顏色以及字體的大小、是否加粗、是否有下劃線等設(shè)置,如下圖所示:

Visio中設(shè)置圖形中字體大小及樣式

6.4 為組件添加接口

在左側(cè)形狀中選擇“Interface,Socket”圖形,如下圖所示的圖形:

Visio中為組件添加提供或需求接口

然后把它拖曳到繪圖區(qū)中的組件附近,這時(shí),相應(yīng)的組件周?chē)鷷?huì)出現(xiàn)若干貼附點(diǎn),如下圖所示:

Visio中為組件添加接口的情形

選擇一個(gè)貼附點(diǎn),然后松開(kāi)鼠標(biāo)后,其會(huì)變成如下的形式:

Visio中為組件添加接口后的情形

用戶可以選中接口,通過(guò)按住圈中(接口)的黃色小方框來(lái)拉長(zhǎng)接口的線。

Viso中調(diào)整接口與接口連接線的長(zhǎng)度

默認(rèn)是提供接口(Provided Interface)的形狀,如果想要添加需求接口(Required Interface),則只需在添加的接口上右擊,然后選擇“Socket”即可,如下圖所示:

Visio中切換需求接口和提供接口

則原來(lái)的提供接口的形狀就變成了需求接口的形狀,如下圖所示:

Visio中的改變?yōu)樾枨蠼涌? height=

6.5 為組件添加依賴關(guān)系

在這個(gè)工具中可以通過(guò)在繪圖中添加“Straight Relationship”為組件圖中添加依賴關(guān)系。

Visio中添加依賴關(guān)系

然后將其微端連接到依賴元素的貼附點(diǎn)上,其頭端連接到被依賴元素的貼附點(diǎn)上。

默認(rèn)添加的“Straight Relationship”為一條直線,情形如下圖所示:

Viso中添加的依賴關(guān)系

用戶可以通過(guò)右擊這個(gè)直線,然后在菜單列表中選擇“Dependency”,即完成依賴關(guān)系的繪制。

Visio中關(guān)系的類(lèi)型

下圖是修改完聯(lián)系類(lèi)型的情形:

Visio中創(chuàng)建的依賴關(guān)系

7 一個(gè)例子

下面是圖書(shū)館借閱系統(tǒng)中的組件圖,這個(gè)組件圖即是使用上面介紹的Visio Stencil for UML工具創(chuàng)建而成的。

圖書(shū)館管理系統(tǒng)組件圖-Visio

下圖是在Rose中實(shí)現(xiàn)的例子:

圖書(shū)館管理系統(tǒng)組件圖-Rose

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
亚洲中文字幕无码av永久| 一区二区三区不卡在线观看| 国产丰满美女做爰| 精品综合久久久| 古典武侠综合av第一页| 91麻豆成人久久精品二区三区| 成人综合久久| 影音先锋久久久| 18以下岁禁止1000部免费| 久操视频在线免费播放| 久久精品一区二区三区不卡牛牛| 亚洲欧洲第一视频| 欧美亚洲愉拍一区二区| 精品成人av一区| 欧美性做爰猛烈叫床潮| 欧美激情综合亚洲一二区| 欧美成人乱码一区二区三区| 欧美在线精品一区二区三区| 久久久噜噜噜www成人网| 国产欧美日韩专区发布| 91精品视频观看| 日韩av二区在线播放| 欧美特级特黄aaaaaa在线看| 91免费在线看| 国产一级片毛片| 国产理论片在线观看| 亚洲黄色av| 蜜桃视频网站www| 91麻豆精品国产91久久久久久| 日韩网站在线免费观看| 国产精品视频在线播放| 污的视频网站| 国内精品国产三级国产aⅴ久| 国产精品久久久久久久免费大片| 99鲁鲁精品一区二区三区| 国产伦精品一区二区三区千人斩| av手机天堂| 国产成人高潮免费观看精品| 最近2019中文字幕在线高清| 一二三四社区在线视频| 欧美日韩国产免费一区二区| 红杏成人性视频免费看| 91香蕉视频在线观看| 亚洲欧美视频一区| 国产精品国语对白| av男人的天堂网| 一本久道中文无码字幕av| 78精品国产综合久久香蕉| 久久大香伊蕉在人线观看热2| 国产精品视频流白浆免费视频| 久久精品国产亚洲a| 国产一区二区在线免费观看| 欧美三级韩国三级日本三斤在线观看| 麻豆精品蜜桃一区二区三区| 99视频免费看| 亚洲黄一区二区三区| 成人午夜视频免费观看| 国产欧美一区在线| 欧美激情精品久久久久久大尺度| 欧美精品18| 成人欧美在线观看| 九九热r在线视频精品| 国产在线国偷精品产拍免费yy| 最近免费观看高清韩国日本大全| 日韩.欧美.亚洲| 天堂av手机在线| 久久av一区二区| 色呦呦免费观看| 久久资源中文字幕| 成人香蕉视频| 欧美在线看片a免费观看| 欧美最猛黑人xxxx黑人猛交3p| 国产精品久久精品牛牛影视| 欧美一级爱爱视频| 中文字幕影音在线| 成人性生交大合| 韩国欧美亚洲国产| 99re6在线精品视频免费播放| 亚洲综合av一区二区三区| 精品国产福利一区二区在线| 香蕉视频911| 秋霞午夜一区二区三区视频| 久久精品视频在线免费观看| 国产精品99免视看9| 一级毛片高清视频| 中文视频一区| 久久久一区二区三区不卡| 久久久综合九色合综国产精品| 国产精品外围在线观看| 无码国产69精品久久久久同性| 奇米色欧美一区二区三区| 免费一级黄色录像| 久久99久久久久久久久久久| 老鸭窝91久久精品色噜噜导演| 欧美精品黑人性xxxx| 韩国三级hd中文字幕有哪些| 欧美久久久久久久久久久| 男男做性免费视频网| 成人欧美一区二区三区在线播放| 精品国产aⅴ一区二区三区东京热| 在线免费观看日本欧美爱情大片| 精品国产亚洲一区二区三区在线| 亚洲女人在线观看| 国模叶桐国产精品一区| 亚洲性感美女99在线| 97精品高清一区二区三区| 国产传媒一区二区三区| 91超薄丝袜肉丝一区二区| 久久综合色之久久综合| 91短视频版在线观看www免费| 少妇饥渴放荡91麻豆| 91在线免费观看| 中文在线观看免费网站| 国产一区二区片| 国产综合在线播放| 隔壁老王国产在线精品| 最新91在线视频| 成人h在线观看| 国产精品成人一区二区三区电影毛片| www一区二区www免费| 亚洲美女黄网| 久本草在线中文字幕亚洲欧美| 日本成人小视频| 久久亚洲欧美日韩精品专区| 久久久av网站| xxx在线视频| 人妻少妇偷人精品久久久任期| 国产91国语对白在线| 色av成人天堂桃色av| 欧美激情一区二区三区在线视频| 懂色av一区二区三区在线播放| a免费在线观看| 麻豆精品传媒视频| 精品人妻一区二区三区蜜桃| 黄色av小说在线观看| 精品在线视频观看| 91中文字幕一区| 国产一区二区视频免费在线观看| 免费看美女隐私的视频| 亚洲精品18| 精品免费视频一卡2卡三卡4卡不卡| 欧美一区在线直播| 欧美激情视频一区二区三区不卡| 欧美午夜片在线观看| 老牛影视av老牛影视av| 艳妇乳肉豪妇荡乳xxx| 污视频网站免费在线观看| 国产成人免费视频网站| 亚洲第一页综合| 精品剧情v国产在线观看| 成人全视频免费观看在线看| 精品免费在线观看| 黑丝一区二区三区| 亚洲精品天堂| 亚洲乱码精品久久久久..| 午夜久久中文| 免费福利在线观看| 精品国产乱码久久久久久久软件| 成年永久一区二区三区免费视频| 色老板在线视频| 中文字幕中文字幕在线中文字幕三区| 国产女人18毛片水真多18精品| 国产午夜在线一区二区三区| 亚洲视频香蕉人妖| 久久免费视频在线| 日韩中文字幕亚洲一区二区va在线| 99re91这里只有精品| 精品国产一区二区精华| 男人操女人的视频网站| 精品视频久久久久久久| 国产专区一区| 欧美黑人猛交的在线视频| 久久综合久久99| 91free张津瑜movies| aaa日本高清在线播放免费观看| 岛国av中文字幕| 欧美三区不卡| www.久久伊人| 日韩亚洲不卡在线| 国产精品乱人伦一区二区| 成人在线视频中文字幕| 国产精品毛片久久久| 久久久久亚洲AV成人无码国产| 无遮挡亚洲一区| 国模精品视频一区二区| 午夜精品影视国产一区在线麻豆| 九九这里只有精品视频| 欧美一级爱爱视频| 欧美日韩视频在线第一区| 欧美华人在线视频| 精品欧美一区二区三区| 日韩激情在线观看| 丁香高清在线观看完整电影视频| 影音先峰男人站| 亚洲a一区二区三区| 亚洲日本成人网| 69国产精品视频免费观看| 国产在线精品一区| 四虎免费播放| 久久久久久久999精品视频| 97视频在线观看视频免费视频| 亚洲精品中文在线影院| 久久91精品| 黄色一级免费| 欧美视频在线一区| 极品美女扒开粉嫩小泬| 欧美娇小性xxxx| 欧美日韩国产首页在线观看| 久久精品午夜福利| 欧美日韩一区二区在线| 在线观看国产网站| 国产精品久久久亚洲第一牛牛| 欧美人与牲禽动交com| 欧美一区2区| 精精国产xxxx视频在线播放| 97视频免费在线| jlzzjlzz亚洲女人18| 国内精品模特av私拍在线观看| 日韩av图片| 欧美不卡视频一区| 欧洲美女免费图片一区| 免费在线播放第一区高清av| 在线女人免费视频| 日本高清不卡的在线| 亚洲欧美日韩天堂| 国产91av视频| 成人av手机在线| 精品国产乱子伦一区| 欧美污在线观看| 在线看的你懂得| 国产精品久久无码一三区| 亚欧在线免费观看| 在线成人视屏| 国产精品一区二三区| 精品少妇一区二区三区在线播放| 91高清国产视频| 国产欧美69| 国产成人综合亚洲| 综合久久中文字幕| jizzjizzjizz在线观看| 欧美日韩人妻精品一区二区三区| 欧美日本在线一区| 免费av网站在线观看| 日韩男人天堂| 成人国产在线| 亚洲成人影院在线观看| 在线观看精品自拍视频| 久久久久久美女| 久久久亚洲av波多野结衣| av大片免费看| 亚洲精品在线观看www| 91大神在线网站| 亚洲国产中文字幕久久网| 久久亚洲一区二区三区明星换脸| 9191久久久久久久久久久| 久久青青草原| 国产成人高清激情视频在线观看| 日韩成人av在线播放| 少妇久久久久久久久久| 欧美日韩视频网站| 国产欧美亚洲日本| 秋霞影院午夜丰满少妇在线视频| 91蝌蚪精品视频| av黄色免费在线观看| 欧美一级二级视频| 国产欧美日韩在线一区二区| 国产精品亚洲lv粉色| 日韩夫妻性生活xx| 亚洲成av人影院| 奇米色在线视频| 91久久久久久久| 伊人精品久久久久7777| av免费在线电影| 麻豆av电影在线观看| 成人高清一区| 肉丝一区二区| 777奇米四色成人影色区| www免费视频观看在线| 一区二区三区国产视频| 久久精品三级| 少妇高潮大叫好爽喷水| 看黄色免费网站| 亚洲国产果冻传媒av在线观看| 五月婷婷一区二区| 波多野结衣中文字幕一区二区三区| 99久久99九九99九九九| 久久不射网站| 欧美做受xxxxxⅹ性视频| 成人3d漫画免费无遮挡软件| 在线免费观看一级片| 日本一二三四区视频| 免费在线视频一级不卡| 懂色av一区二区三区在线播放| 四虎精品欧美一区二区免费| 欧美一级高清片| 国产日韩欧美制服另类| 天天躁日日躁狠狠躁欧美巨大小说| 91精品国产黑色紧身裤美女| 亚洲欧美一区在线| 麻豆av一区二区三区| 欧美日韩在线观看一区二区三区| 亚洲第一激情av| 十大黄色软件免费看| 国产伦精品一区二区三区免费视频| 欧美jizz18| 日本又骚又刺激的视频在线观看| 免费精品国产自产拍观看| 四虎影视精品成人| 香蕉污视频在线观看| 国产日韩欧美一区二区三区综合| 国精产品一区一区三区四川| 免费日韩精品中文字幕视频在线| 曰批又黄又爽免费视频| 免费黄色av电影| 蜜芽在线免费观看| 欧美久久久久久久久久| 波多野结衣三级视频| 男插女视频久久久| 在线播放av网址| 进去里视频在线观看| 日韩免费性生活视频播放| 五月天中文字幕| 在线免费黄色| 亚洲国产尤物| 九色porny蝌蚪视频在线观看| 国产91成人在在线播放| 欧美黄色小视频| 我不卡神马影院|