• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于MVC框架的系統(tǒng)重構(gòu)方法研究與實(shí)踐

    2015-11-14 12:11:12李景炤等
    電腦知識與技術(shù) 2015年22期
    關(guān)鍵詞:計(jì)算機(jī)軟件

    李景炤等

    摘要:ASP.NET的WebForm開發(fā)模式控件豐富,能夠迅速搭建Web應(yīng)用,但是存在可重用性差、安全性低、運(yùn)行速度慢等缺點(diǎn),不適合中大型系統(tǒng)的開發(fā)。為了提高論文管理系統(tǒng)的安全性、可維性和運(yùn)行性能,采用ASP.NET MVC框架模式進(jìn)行系統(tǒng)結(jié)構(gòu)的重構(gòu),利用對象關(guān)系映射和Active Record技術(shù)進(jìn)行數(shù)據(jù)層的重構(gòu)。對比測試結(jié)果顯示,重構(gòu)后的系統(tǒng)可維護(hù)指數(shù)提高,圈復(fù)雜度、代碼克隆數(shù)和CPU使用率降低。

    關(guān)鍵詞:計(jì)算機(jī)軟件;系統(tǒng)重構(gòu);MVC框架;ASP.NET

    中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2015)22-0063-04

    Abstract: The WebForm ASP.NET development mode control is rich, can quickly build Web applications, but there is a low reusability, low safety, running speed, etc., is not suitable for the development of large systems. In order to improve the security, maintainability and performance of the paper management system, MVC ASP.NET framework is adopted to reconstruct the system structure, and the data layer is reconstructed by using object relational mapping and Record Active technology. Compared with the test results, the system can be improved, the loop complexity, the number of code clones and the usage rate of CPU can be reduced.

    Key words: computer software; system reconstruction; MVC framework; ASP.NET

    1 問題背景

    ASP.NET中的WebForm是一種可視化開發(fā)模式,用戶通過拖拽控件進(jìn)行網(wǎng)頁界面的設(shè)計(jì),Visual Studio編輯器自動在網(wǎng)頁文件生成相應(yīng)的代碼,然后雙擊控件或者在事件視圖中雙擊相應(yīng)事件,將在另外一個對應(yīng)的.CS文件中進(jìn)行編碼,實(shí)現(xiàn)對網(wǎng)頁控件的交互操作[1]。由于開發(fā)方便、上手容易,WebForm模式在小型項(xiàng)目開發(fā)中廣泛應(yīng)用。但是對于中大型項(xiàng)目,采用WebForm模式進(jìn)行開發(fā)的話會出現(xiàn)不少問題:項(xiàng)目中充斥著大量的網(wǎng)頁文件和后臺代碼文件,文件數(shù)量過多難以管理;項(xiàng)目網(wǎng)頁文件與邏輯代碼文件緊密耦合,代碼重用性不高;網(wǎng)頁代碼中暴露過多的系統(tǒng)實(shí)現(xiàn)細(xì)節(jié),容易遭受網(wǎng)絡(luò)攻擊導(dǎo)致信息安全問題;數(shù)據(jù)庫操作的代碼實(shí)現(xiàn)比較繁瑣,每次涉及到數(shù)據(jù)庫交互操作都要重新寫SQL語句;功能擴(kuò)展麻煩,當(dāng)需要擴(kuò)展新的功能頁面時需要重新設(shè)計(jì)網(wǎng)頁界面和進(jìn)行編碼。

    我們在開發(fā)論文管理系統(tǒng)的過程中,初期為了快速實(shí)現(xiàn)系統(tǒng)的主要功能,使用了 ASP.NET WebForm模式來進(jìn)行項(xiàng)目的開發(fā)工作。但隨著項(xiàng)目的進(jìn)行,由于系統(tǒng)功能的不斷擴(kuò)展,同時用戶需求有了一些更改,WebForm模式帶來的問題逐步顯露出來。針對開發(fā)工作中出現(xiàn)的問題,項(xiàng)目組決定使用ASP.NET MVC框架重構(gòu)系統(tǒng),希望開發(fā)工作向著代碼的結(jié)構(gòu)規(guī)范、冗余度低、重用性好,系統(tǒng)擴(kuò)展方便、安全性更高的方向發(fā)展,使系統(tǒng)具有更高的穩(wěn)定性和可維護(hù)性。

    2 MVC框架分析

    MVC框架是現(xiàn)代大型項(xiàng)目開發(fā)中廣泛使用的開發(fā)模型,其基于面向?qū)ο蟮脑O(shè)計(jì)模式極大提高了程序的開發(fā)速度,降低了功能擴(kuò)展維護(hù)帶來的不便,使功能像組件一樣自由變換[1]。

    2.1 MVC核心部件

    MVC框架模式將系統(tǒng)按功能模塊化地分成三個主要的部件:模型(Model)、視圖(View)、控制器(Controller)。它們各自處理自己的任務(wù),相互之間通過接口進(jìn)行交互[2],其功能劃分及相互關(guān)系如圖1所示。

    跟傳統(tǒng)的WebForm模式相比,ASP.NET MVC框架放棄了很多有缺陷的特性,如Code-behind頁面、服務(wù)器控件、數(shù)據(jù)綁定、URL Rewrite等,取而代之的是Controller、HtmlHelper、Routing等類庫和組件[3]。與WebForm相比,ASP.NET MVC在Web開發(fā)領(lǐng)域顯得更加專業(yè)化,對Web開發(fā)的效率提升非常明顯,特別是在規(guī)模較大、功能點(diǎn)多、頁面數(shù)量多邏輯結(jié)構(gòu)復(fù)雜的大型應(yīng)用程序開發(fā)中,MVC模式在健壯性、代碼重用和結(jié)構(gòu)方面有了很大的提升 [4]。使用MVC架構(gòu)開發(fā)出軟件代碼有較強(qiáng)的可理解性、重用性、系統(tǒng)穩(wěn)定性、可維護(hù)性,能夠減少軟件的修改、再次開發(fā)等方面的工作量,減少了在系統(tǒng)方面所投入的成本[5]。

    2.2 ASP.NET MVC框架運(yùn)行流程

    在ASP.NET MVC4中,所有請求都是通過項(xiàng)目根目錄中的一個Global.asax文件作為唯一的入口,客戶端向服務(wù)器提交的請求首先由這個文件接收,由該文件執(zhí)行Application_start()方法實(shí)例化啟動進(jìn)程,并調(diào)用路由匹配注冊表確定指派到某一個控制器處理??刂破鹘拥秸埱蠛?,可以調(diào)用某一個對象模型來處理;模型根據(jù)相應(yīng)的業(yè)務(wù)邏輯進(jìn)行邏輯處理,并且與數(shù)據(jù)庫進(jìn)行交互,返回所需的數(shù)據(jù);最終控制器加載并渲染指定的視圖來將處理好的數(shù)據(jù)呈現(xiàn)給用戶。系統(tǒng)采用ASP.NET MVC 后的運(yùn)行流程如圖2所示。

    3 系統(tǒng)結(jié)構(gòu)的重構(gòu)

    在ASP.NET的WebForm模式中,系統(tǒng)的代碼模塊是按頁面來分的,也就是說有多少個頁面就有多少個邏輯處理文件,每個代碼文件僅僅處理自身頁面的代碼邏輯,這種劃分代碼模塊的缺點(diǎn)是,一旦頁面過多,就會變得很雜亂,代碼文件查找困難,維護(hù)難度高,而且不利于日后功能迭代或者功能修改。而在ASP.NET MVC中,項(xiàng)目代碼文件按部件來劃分,而每個部件又通過系統(tǒng)功能的模塊化對應(yīng)來實(shí)現(xiàn)二級劃分,整個項(xiàng)目就變得有層次和條理,維護(hù)起來也變得方便。

    3.1 系統(tǒng)功能分析

    畢業(yè)設(shè)計(jì)管理系統(tǒng)是一個教師、學(xué)生和系統(tǒng)管理員使用的教務(wù)管理平臺。按使用角色可以對系統(tǒng)的功能作以下分類:教師有發(fā)布課題、修改個人信息、查看課題列表、查詢學(xué)生信息等功能;學(xué)生有選擇課題、修改個人信息、查詢課題列表、查詢教師信息、提交上傳文檔等功能;系統(tǒng)管理員有審核課題、課題信息管理、網(wǎng)站功能設(shè)置、用戶信息管理、角色分配、論題管理等功能。

    3.2 按功能劃分模塊

    在MVC框架中,控制器實(shí)際上就是以相近功能組成的模塊。對系統(tǒng)的功能進(jìn)行分析后,我們進(jìn)行模塊的劃分,將功能相近的代碼邏輯放到同一個控制器里面,而每一個功能都通過控制器里的方法來實(shí)現(xiàn),方便調(diào)用。根據(jù)對系統(tǒng)的功能進(jìn)行分析,本系統(tǒng)的控制器可分為:教師控制器、學(xué)生控制器、角色控制器、用戶控制器、論題控制器、系統(tǒng)設(shè)置控制器等。

    在每個都模塊抽象為MVC框架中的控制器后,根據(jù)每個模塊中需要的頁面在視圖部分進(jìn)行添加。這樣,我們就把整個系統(tǒng)的功能進(jìn)行了模塊化的劃分。模塊之間既相互獨(dú)立,又可以通過接口進(jìn)行相互調(diào)用和聯(lián)系。

    3.3 代碼文件結(jié)構(gòu)

    圖3(a) 是WebForm模式中的文件結(jié)構(gòu),大量的文件都堆放在同一個目錄,顯得雜亂無章;圖3(b)是使用了MVC模式重構(gòu)后的代碼文件結(jié)構(gòu),為每個核心部件都分配了不一樣的目錄,這樣的做法分層合理,文件結(jié)構(gòu)顯得規(guī)范有條理;圖3(c)是控制器部件目錄的展開圖,控制器目錄中的每個文件都對應(yīng)每一個模塊,有些模塊因需要分開兩個控制器文件來實(shí)現(xiàn),對應(yīng)的視圖文件在Views目錄下。

    4 數(shù)據(jù)層的重構(gòu)

    系統(tǒng)結(jié)構(gòu)的重構(gòu)完成之后,我們還利用對象關(guān)系映射(Object Relational Mapping,ORM)和Active Record技術(shù)來進(jìn)行數(shù)據(jù)層的重構(gòu)。

    4.1 ORM和Active Record技術(shù)

    ORM是隨著面向?qū)ο笏枷氲某墒於a(chǎn)生的一種軟件開發(fā)技術(shù)。目前主流的框架產(chǎn)品,如ASP.NET MVC、Hibernate等,已經(jīng)將ORM集成在內(nèi)。Microsoft Entity Framework 是一個對象關(guān)系映射(ORM)工具,它能將關(guān)系型數(shù)據(jù)轉(zhuǎn)換成.NET數(shù)據(jù)對象,也可以將.NET數(shù)據(jù)對象轉(zhuǎn)換成關(guān)系型數(shù)據(jù) [6]。

    Active Record是一種領(lǐng)域模型模式,最早由Rails提出,它在ORM的基礎(chǔ)上,把負(fù)責(zé)持久化的代碼也集成到數(shù)據(jù)對象中[7]。傳統(tǒng)的ORM只是把數(shù)據(jù)對象與負(fù)責(zé)持久化的代碼分隔開來,數(shù)據(jù)對象只是單純的包含了自身的數(shù)據(jù)結(jié)構(gòu)體。而在Active Record中,他們不僅是數(shù)據(jù)實(shí)體,而且包含了業(yè)務(wù)邏輯,集成了把自己持久化的操作。在ASP.NET MVC中,Active Record已經(jīng)定義好了集成持久化操作方法的模型父類,數(shù)據(jù)對象類只需要繼承這個父類,就可以繼承這些持久化操作的方法,通過簡單的方法調(diào)用,就可以實(shí)現(xiàn)持久化操作。

    4.2 重構(gòu)系統(tǒng)的數(shù)據(jù)層

    利用ORM和Active Record技術(shù),我們在處理有關(guān)操作數(shù)據(jù)庫的業(yè)務(wù)邏輯時,不需要接觸到SQL語句。對數(shù)據(jù)的操作簡化成了對象的操作,為一張表聲明一個類,并使類中的成員對應(yīng)關(guān)系型數(shù)據(jù)庫中的字段,就可以跟這個類的實(shí)例進(jìn)行交互了。至于這個對象中的數(shù)據(jù)怎么跟數(shù)據(jù)庫交互,我們完全不用關(guān)心。ORM會根據(jù)實(shí)際需要生成相應(yīng)的SQL語句執(zhí)行,返回的結(jié)果又會自動處理成對象或者開發(fā)者想要的形式。

    重構(gòu)系統(tǒng)數(shù)據(jù)層的具體操作分以下兩個步驟:

    1)為系統(tǒng)的數(shù)據(jù)對象建立模型,將數(shù)據(jù)對象轉(zhuǎn)化為關(guān)系型數(shù)據(jù)庫中的表和列。

    2)修改業(yè)務(wù)邏輯中需要與數(shù)據(jù)庫交互的代碼,將SQL語句替代為由Active Record操作數(shù)據(jù)對象。

    重構(gòu)系統(tǒng)數(shù)據(jù)層后,我們能夠輕易地通過實(shí)例化數(shù)據(jù)對象來從模型中獲取需要的數(shù)據(jù),以系統(tǒng)的用戶模塊為例,用語句“List userList = db.users.ToList();”即可獲取所有用戶模型的集合。與直接使用SQL語句相比,Active Record技術(shù)更為簡潔,不易出錯,能夠進(jìn)行參數(shù)過濾和綁定,還能夠屏蔽數(shù)據(jù)庫之間的差異。Active Record技術(shù)簡化了開發(fā)者的工作,使得系統(tǒng)的功能擴(kuò)展或者修改都比較容易。

    5 系統(tǒng)重構(gòu)效果測量

    為了比較重構(gòu)后系統(tǒng)源代碼的重用性、可維護(hù)性、冗雜度和性能上的差異,我們使用Visual Studio 2013分別對代碼度量值、代碼克隆分析和CUP使用率這三個指標(biāo)進(jìn)行了測量。

    5.1 代碼度量值

    代碼度量是一組對軟件質(zhì)量進(jìn)行度量的數(shù)值,開發(fā)者依靠這組數(shù)值可以更好地分析他們開發(fā)中的代碼。通過代碼度量,開發(fā)者可以清楚看到哪些類型和/或方法應(yīng)該重寫或者進(jìn)行更加徹底的代碼測試。 開發(fā)團(tuán)隊(duì)也可以通過這組數(shù)值識別代碼中哪些有可能出現(xiàn)的風(fēng)險、對項(xiàng)目的狀態(tài)進(jìn)行了解,并對軟件開發(fā)的進(jìn)度進(jìn)行跟蹤[8]。代碼度量會檢測出項(xiàng)目代碼中所有定義的命名空間,再在其中統(tǒng)計(jì)可維護(hù)指數(shù)、圈復(fù)雜度、繼承深度等檢測值。圖4與圖5為重構(gòu)前后代碼度量值的結(jié)果。

    我們的目標(biāo)是對可維護(hù)指數(shù)和圈復(fù)雜度進(jìn)行分析??删S護(hù)指數(shù)的范圍在0 至 100 之間,表示了代碼維護(hù)的相對容易程度,數(shù)值越高意味著可維護(hù)性越好;而圈復(fù)雜度則是描述了代碼在結(jié)構(gòu)上的復(fù)雜度,它是通過計(jì)算程序流中的不同代碼的路徑數(shù)量來創(chuàng)建的 [8]。

    對本次重構(gòu)前后的系統(tǒng)代碼檢測結(jié)果顯示,代碼重構(gòu)后可維護(hù)指數(shù)提升了14%,圈復(fù)雜度減少了原來的約40%。同時從層次結(jié)構(gòu)看出,使用了MVC框架模式,代碼的根命名空間比原來的少了很多,代碼層次分明,可見代碼的可維護(hù)性有了一定程度的提高。加上使用Active Record技術(shù)進(jìn)行數(shù)據(jù)層對象封裝,對數(shù)據(jù)對象的操作不再需要局部定義對象的結(jié)構(gòu),只需要調(diào)用Active Record的數(shù)據(jù)層對象就能勝任,這樣相同功能的代碼就相對集中在同一個目錄,圈復(fù)雜度相應(yīng)地降低。

    5.2 代碼克隆分析

    代碼克隆分析就是檢測系統(tǒng)項(xiàng)目源代碼中重復(fù)的部分,使開發(fā)人員能夠整理重復(fù)的代碼,提高代碼質(zhì)量。我們在研究中發(fā)現(xiàn),Visual Studio的代碼克隆分析不是僅僅匹配字面上的代碼,而且能通過代碼分析檢測邏輯相同的代碼,它不僅能搜索代碼相同的模塊,而且還能搜索語義上類似的結(jié)構(gòu)。圖6與圖7為重構(gòu)前后的代碼克隆分析結(jié)果。

    通過對比重構(gòu)前后的代碼克隆分析結(jié)果,可以看出使用MVC框架重構(gòu)后的代碼克隆數(shù)遠(yuǎn)小于重構(gòu)前。而這意味著重構(gòu)前有大量的重復(fù)代碼存在,這樣的壞處是,通過復(fù)制粘貼的源代碼一旦需要修改部分代碼,就需要查找所有涉及相同功能的地方一并修改;也有可能需要修改某些特定的地方,其他地方保持不變,這時候即使IDE編輯器有批量修改代碼的功能也無濟(jì)于事了?;贛VC框架重構(gòu)后的代碼高度抽象和封裝,模塊與模塊之間已經(jīng)有了明確的分工,很多相同的邏輯將合并起來;而ORM將通過寫SQL語句來獲取數(shù)據(jù)操作的源代碼轉(zhuǎn)化成了通過調(diào)用ORM封裝的方法來生成數(shù)據(jù)對象的源代碼,重復(fù)的SQL語句將不再出現(xiàn),這也是克隆代碼降低的其中一個原因。在軟件開發(fā)的過程中,使用重復(fù)代碼的頻率越少,日后源代碼的維護(hù)就會越容易??梢?,重構(gòu)后的源代碼可維護(hù)性有了很大的提高。

    5.3 CPU使用率

    使用MVC框架重構(gòu)后的項(xiàng)目抽象封裝程度高,有人覺得會對性能造成影響,因?yàn)槊看芜\(yùn)行都要初始化封裝好的對象,有可能會加載一些不需要的組件來增加服務(wù)器的開銷。我們根據(jù)重構(gòu)前后的代碼,使用Visual Studio運(yùn)行代碼分析,訪問論文管理系統(tǒng)的同一個頁面,監(jiān)聽CPU使用率隨時間變化的過程,測試時間大約是1分半鐘。期間頁面每隔一段時間(約10秒)被刷新,不斷向服務(wù)器發(fā)送請求。圖8與圖9為重構(gòu)前后的CPU使用率曲線圖。

    從圖8和圖9的對比可以看出,重構(gòu)后的系統(tǒng)CPU使用率總體上都是比重構(gòu)前要低的。前10秒左右是Visual Studio工具編譯部署項(xiàng)目的時間,可以看出使用MVC框架后編譯部署過程CPU使用率是使用前的約4倍。這是因?yàn)槭褂肳ebForm在很大程度上要依賴比較多還沒有編譯好的部件,很多如圖片上傳、文件生成、視圖渲染的功能都要開發(fā)者自行通過源代碼實(shí)現(xiàn),編譯起來就要耗費(fèi)相對較多的資源;而MVC框架將絕大部分的部件封裝成為二進(jìn)制文件,只需要編譯主要的代碼就可以了,CPU使用率自然就低了。

    約過了10秒后,是頁面接受請求進(jìn)行邏輯處理的過程??梢钥闯鲋貥?gòu)后的系統(tǒng)除了第一次處理請求CPU使用率相對較高,為23%左右,接下來處理請求的CPU使用率都是不到10%。而重構(gòu)前的系統(tǒng)CPU使用率一直都在波動,居高不下,平均在20%。產(chǎn)生這些差異的原因是,.NET MVC框架在頁面第一次被請求的時候就生成了頁面的緩存,往后的請求處理就不再需要進(jìn)行處理頁面渲染的步驟;同時,因?yàn)榉?wù)器已經(jīng)裝上了.NET MVC框架的組件,運(yùn)行的時候就不再需要額外的CPU資源,所以如果沒有在處理請求的情況下CPU使用率都接近0。而傳統(tǒng)的WebForm模式?jīng)]有緩存機(jī)制,每次加載都需要重新進(jìn)行頁面渲染工作,CPU使用率偏高,而且在解釋非系統(tǒng)自帶組件也需要占用一定的CPU資源。

    6 總結(jié)

    本文使用了ASP.NET MVC框架進(jìn)行了論文管理系統(tǒng)的重構(gòu),按系統(tǒng)的功能進(jìn)行抽象分類,各個部分的功能分成了各個模塊,使耦合性盡量低,并通過接口進(jìn)行交互。對于系統(tǒng)的數(shù)據(jù)層,運(yùn)用ORM與Active Record技術(shù)進(jìn)行重構(gòu),為數(shù)據(jù)處理提供了更加直觀便捷、便于維護(hù)的方式。

    對重構(gòu)前后的代碼度量值、代碼克隆分析和CUP使用率的對比結(jié)果表明,使用MVC框架對于解決代碼冗余、增強(qiáng)系統(tǒng)可維護(hù)性和運(yùn)行性能都有比較大的幫助。

    致謝:本文作者向指導(dǎo)老師孫宇鋒教授、李林同學(xué)以及有關(guān)老師表示真誠的謝意!

    參考文獻(xiàn):

    [1] 吳昌錢.net框架下軟件開發(fā)模式研究[J].哈爾濱師范大學(xué)自然科學(xué)學(xué)報,2014,30(3):99-102.

    [2] 林永良,胡建平,吳樹林.基于.NET MVC架構(gòu)下的科研項(xiàng)目管理系統(tǒng)[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2014(12):217-220.

    [3] 吳勝,劉建波,劉士彬. ASP.NET MVC框架下內(nèi)容管理系統(tǒng)的探索與實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2010(36):30-32.

    [4] 周泉.淺談從 WebForm 開發(fā)模式到 ASP.NET MVC 開發(fā)模式的發(fā)展[J].計(jì)算機(jī)光盤軟件與應(yīng)用,2012(15):248-270.

    [5] 苑慶濤,張新柱,馬博,等. 基于ASP.NET MVC的數(shù)字化管理平臺[J].計(jì)算機(jī)技術(shù)與發(fā)展, 2013(12):164-167.

    [6] 龔蘭蘭.基于.Net MVC4 的Code First 模式數(shù)據(jù)庫開發(fā)和遷移[J].信息通信,2014(12):99-99.

    [7] 許日丹,楊俊.基于Rails框架的ActiveRecord模塊研究與應(yīng)用[J].軟件導(dǎo)刊,2007,57(13):127-129.

    [8] Microsoft. 代碼度量值[EB/OL]. https://msdn.microsoft.com/zh-cn/library/bb385914.aspx, 2015-01-01/2015-04-30.

    猜你喜歡
    計(jì)算機(jī)軟件
    基于C語言的計(jì)算機(jī)軟件編程
    電子制作(2018年16期)2018-09-26 03:27:08
    淺談不同編程語言對計(jì)算機(jī)軟件開發(fā)的影響
    電子制作(2018年1期)2018-04-04 01:48:36
    淺談基于C語言的計(jì)算機(jī)軟件程序設(shè)計(jì)
    電子制作(2017年24期)2017-02-02 07:14:40
    基于計(jì)算機(jī)軟件開發(fā)中分層技術(shù)的應(yīng)用
    河南科技(2014年15期)2014-02-27 14:12:23
    老司机福利观看| 国产精品电影一区二区三区| 日韩精品中文字幕看吧| 男人舔奶头视频| 99re在线观看精品视频| 亚洲九九香蕉| 最近最新免费中文字幕在线| 午夜精品久久久久久毛片777| 国内精品久久久久久久电影| 高清毛片免费观看视频网站| 免费无遮挡裸体视频| 亚洲国产日韩欧美精品在线观看 | 欧美国产日韩亚洲一区| 丰满人妻熟妇乱又伦精品不卡| 伦理电影免费视频| 中文字幕高清在线视频| 99国产精品99久久久久| 人人妻人人看人人澡| 精品久久久久久久人妻蜜臀av| 亚洲国产中文字幕在线视频| av在线天堂中文字幕| 一二三四在线观看免费中文在| 少妇 在线观看| 此物有八面人人有两片| 婷婷亚洲欧美| 看黄色毛片网站| www日本在线高清视频| 色哟哟哟哟哟哟| 欧美av亚洲av综合av国产av| 欧美黄色片欧美黄色片| 日韩欧美一区二区三区在线观看| 无遮挡黄片免费观看| 此物有八面人人有两片| 日韩成人在线观看一区二区三区| 人人妻人人澡欧美一区二区| 啦啦啦免费观看视频1| 日韩欧美一区二区三区在线观看| 欧美黑人欧美精品刺激| 亚洲av成人av| 在线观看一区二区三区| 久久天堂一区二区三区四区| 亚洲中文av在线| 99国产综合亚洲精品| 性色av乱码一区二区三区2| 最近最新免费中文字幕在线| 免费搜索国产男女视频| 亚洲精品久久成人aⅴ小说| 亚洲熟妇熟女久久| 久久久国产欧美日韩av| 欧美又色又爽又黄视频| 日韩欧美 国产精品| 日本熟妇午夜| 两性午夜刺激爽爽歪歪视频在线观看 | 露出奶头的视频| 欧美日韩乱码在线| 18美女黄网站色大片免费观看| 亚洲一卡2卡3卡4卡5卡精品中文| 桃色一区二区三区在线观看| 日本三级黄在线观看| 亚洲午夜理论影院| 国产精品亚洲一级av第二区| av天堂在线播放| 在线观看一区二区三区| 97人妻精品一区二区三区麻豆 | 这个男人来自地球电影免费观看| 99久久国产精品久久久| 可以免费在线观看a视频的电影网站| 国产精品永久免费网站| 男男h啪啪无遮挡| 中文字幕av电影在线播放| 国产视频一区二区在线看| 九色国产91popny在线| 淫妇啪啪啪对白视频| 欧美绝顶高潮抽搐喷水| 国产高清视频在线播放一区| 亚洲第一av免费看| 国产免费av片在线观看野外av| 亚洲精品国产精品久久久不卡| 亚洲av熟女| 好男人在线观看高清免费视频 | 99精品在免费线老司机午夜| 熟妇人妻久久中文字幕3abv| ponron亚洲| 一区福利在线观看| 久久久久久大精品| 久久精品91无色码中文字幕| 免费在线观看亚洲国产| 三级毛片av免费| 老熟妇仑乱视频hdxx| 老熟妇仑乱视频hdxx| 久久久国产欧美日韩av| 99精品欧美一区二区三区四区| 亚洲人成77777在线视频| or卡值多少钱| 欧美激情高清一区二区三区| 亚洲国产欧美一区二区综合| 无人区码免费观看不卡| 看免费av毛片| 曰老女人黄片| 午夜福利在线在线| 男女床上黄色一级片免费看| 亚洲一码二码三码区别大吗| 女警被强在线播放| 午夜久久久在线观看| 国产亚洲精品一区二区www| 日韩国内少妇激情av| 欧美亚洲日本最大视频资源| av在线播放免费不卡| 亚洲精品粉嫩美女一区| 日本 欧美在线| 2021天堂中文幕一二区在线观 | 久久香蕉精品热| 人人妻人人澡欧美一区二区| 国产午夜精品久久久久久| 麻豆成人午夜福利视频| 在线播放国产精品三级| 看片在线看免费视频| av电影中文网址| 不卡av一区二区三区| 久久久久国产一级毛片高清牌| 亚洲国产中文字幕在线视频| 欧美亚洲日本最大视频资源| 露出奶头的视频| 国产视频内射| 国产精品亚洲一级av第二区| 欧美性猛交╳xxx乱大交人| 亚洲欧美精品综合久久99| 国产精品免费视频内射| a级毛片a级免费在线| 成年免费大片在线观看| 在线十欧美十亚洲十日本专区| 亚洲片人在线观看| 一区二区三区精品91| 一级毛片精品| 波多野结衣av一区二区av| 老鸭窝网址在线观看| 午夜久久久久精精品| 一进一出抽搐gif免费好疼| 亚洲无线在线观看| 亚洲第一电影网av| 日本免费一区二区三区高清不卡| av在线天堂中文字幕| 精品久久久久久成人av| 天天躁夜夜躁狠狠躁躁| 国产精品 国内视频| 久久国产精品人妻蜜桃| 大型黄色视频在线免费观看| 啪啪无遮挡十八禁网站| 精品高清国产在线一区| 国产三级在线视频| 在线观看午夜福利视频| 欧美日本视频| 国产精品香港三级国产av潘金莲| 亚洲黑人精品在线| 国产成人av激情在线播放| 男人舔奶头视频| 日日干狠狠操夜夜爽| 国产aⅴ精品一区二区三区波| 亚洲国产精品合色在线| 日韩欧美三级三区| 在线看三级毛片| 亚洲午夜精品一区,二区,三区| 他把我摸到了高潮在线观看| 一进一出抽搐动态| 不卡av一区二区三区| 18禁国产床啪视频网站| 两人在一起打扑克的视频| 精品福利观看| 女性生殖器流出的白浆| 国产高清videossex| 少妇粗大呻吟视频| 搡老妇女老女人老熟妇| 国产激情欧美一区二区| 久久精品aⅴ一区二区三区四区| 欧美成狂野欧美在线观看| 在线国产一区二区在线| 亚洲片人在线观看| 国产日本99.免费观看| 岛国在线观看网站| 亚洲av日韩精品久久久久久密| 精品欧美一区二区三区在线| 好男人电影高清在线观看| 大型av网站在线播放| 高潮久久久久久久久久久不卡| 午夜免费成人在线视频| 亚洲精华国产精华精| 国产精品野战在线观看| 99re在线观看精品视频| 人人妻人人澡人人看| 手机成人av网站| 亚洲国产欧洲综合997久久, | 久久精品夜夜夜夜夜久久蜜豆 | 国产精品美女特级片免费视频播放器 | or卡值多少钱| 亚洲在线自拍视频| 欧美在线黄色| 麻豆国产av国片精品| 亚洲自偷自拍图片 自拍| 18禁国产床啪视频网站| 成熟少妇高潮喷水视频| 婷婷精品国产亚洲av在线| 亚洲精华国产精华精| 99国产精品99久久久久| 在线免费观看的www视频| 亚洲成a人片在线一区二区| 少妇 在线观看| 亚洲av电影在线进入| 国产精品 欧美亚洲| 身体一侧抽搐| 国产一区二区三区在线臀色熟女| 欧美久久黑人一区二区| 日韩欧美 国产精品| cao死你这个sao货| 欧美乱码精品一区二区三区| АⅤ资源中文在线天堂| 日韩欧美国产在线观看| 国产又爽黄色视频| 日本撒尿小便嘘嘘汇集6| 国产亚洲精品久久久久久毛片| 嫩草影院精品99| 欧洲精品卡2卡3卡4卡5卡区| 亚洲美女黄片视频| 久久午夜亚洲精品久久| 欧美精品亚洲一区二区| 亚洲av第一区精品v没综合| 50天的宝宝边吃奶边哭怎么回事| 亚洲国产看品久久| 在线看三级毛片| 夜夜看夜夜爽夜夜摸| 黑丝袜美女国产一区| 亚洲国产精品久久男人天堂| 亚洲精品一区av在线观看| 在线观看免费日韩欧美大片| 欧美精品亚洲一区二区| 国产高清有码在线观看视频 | 日韩国内少妇激情av| 免费高清视频大片| 午夜久久久在线观看| 波多野结衣高清无吗| 桃红色精品国产亚洲av| 超碰成人久久| 国产91精品成人一区二区三区| xxxwww97欧美| 999久久久国产精品视频| 一个人观看的视频www高清免费观看 | 少妇裸体淫交视频免费看高清 | 亚洲最大成人中文| АⅤ资源中文在线天堂| 男女那种视频在线观看| 精品国产美女av久久久久小说| 欧美色欧美亚洲另类二区| 国产一级毛片七仙女欲春2 | 精品少妇一区二区三区视频日本电影| 黑丝袜美女国产一区| 91大片在线观看| 精品久久久久久,| 亚洲色图 男人天堂 中文字幕| 日韩国内少妇激情av| 美女高潮到喷水免费观看| www.熟女人妻精品国产| 国产三级在线视频| 麻豆国产av国片精品| 国产精品99久久99久久久不卡| 听说在线观看完整版免费高清| 最近最新中文字幕大全电影3 | 麻豆成人午夜福利视频| 午夜福利欧美成人| 精品无人区乱码1区二区| 久久香蕉精品热| 日日干狠狠操夜夜爽| 成人精品一区二区免费| 波多野结衣高清作品| 久久精品国产99精品国产亚洲性色| 亚洲一区二区三区色噜噜| 欧美成人性av电影在线观看| 国产免费男女视频| 日韩视频一区二区在线观看| 看片在线看免费视频| 日韩欧美三级三区| 精品午夜福利视频在线观看一区| 亚洲成人精品中文字幕电影| 国产成人一区二区三区免费视频网站| 黄色 视频免费看| 色精品久久人妻99蜜桃| 777久久人妻少妇嫩草av网站| 叶爱在线成人免费视频播放| 亚洲国产日韩欧美精品在线观看 | 99久久99久久久精品蜜桃| 中文字幕人妻丝袜一区二区| 黄片播放在线免费| avwww免费| 亚洲成国产人片在线观看| 午夜福利高清视频| 国产欧美日韩一区二区精品| 一边摸一边做爽爽视频免费| 一级片免费观看大全| 国产精品亚洲美女久久久| 19禁男女啪啪无遮挡网站| 久久午夜综合久久蜜桃| 午夜免费观看网址| 国产久久久一区二区三区| 国产三级在线视频| 99久久国产精品久久久| 伊人久久大香线蕉亚洲五| 久久九九热精品免费| 老司机在亚洲福利影院| cao死你这个sao货| 欧美乱色亚洲激情| 亚洲无线在线观看| 亚洲av片天天在线观看| 成人亚洲精品一区在线观看| 精品久久久久久久久久免费视频| 国产私拍福利视频在线观看| www.熟女人妻精品国产| 婷婷六月久久综合丁香| 国产激情久久老熟女| 亚洲国产精品999在线| 亚洲人成电影免费在线| 999久久久国产精品视频| 国产av又大| 久久香蕉精品热| 久久亚洲真实| 亚洲精品一卡2卡三卡4卡5卡| 国内毛片毛片毛片毛片毛片| 色播在线永久视频| 女生性感内裤真人,穿戴方法视频| 精品第一国产精品| 美女高潮喷水抽搐中文字幕| 国内久久婷婷六月综合欲色啪| 精华霜和精华液先用哪个| 最新在线观看一区二区三区| 亚洲真实伦在线观看| 午夜老司机福利片| 精品人妻1区二区| av福利片在线| 欧美一区二区精品小视频在线| 嫁个100分男人电影在线观看| 国产黄片美女视频| av视频在线观看入口| 欧美绝顶高潮抽搐喷水| 日日干狠狠操夜夜爽| 欧美绝顶高潮抽搐喷水| 两个人视频免费观看高清| 久久久久免费精品人妻一区二区 | 国产99久久九九免费精品| 国产精品,欧美在线| 老司机福利观看| 18禁黄网站禁片免费观看直播| 夜夜夜夜夜久久久久| av中文乱码字幕在线| 精品欧美国产一区二区三| 精品少妇一区二区三区视频日本电影| 久久久久九九精品影院| 欧美日韩黄片免| 午夜福利视频1000在线观看| 国产午夜福利久久久久久| 99riav亚洲国产免费| 国产精品一区二区精品视频观看| 亚洲精品久久国产高清桃花| 黄网站色视频无遮挡免费观看| 日韩大码丰满熟妇| 久久精品91蜜桃| 青草久久国产| 亚洲中文字幕一区二区三区有码在线看 | 1024香蕉在线观看| 亚洲人成网站高清观看| 亚洲av成人av| 中文字幕久久专区| 久久香蕉国产精品| 黑人操中国人逼视频| 久久久久久大精品| 久久精品亚洲精品国产色婷小说| 久久精品国产亚洲av高清一级| 亚洲最大成人中文| 亚洲国产欧美一区二区综合| 亚洲成人免费电影在线观看| tocl精华| 一进一出抽搐gif免费好疼| 99精品久久久久人妻精品| 久久精品91蜜桃| 午夜精品在线福利| 日韩免费av在线播放| 黄色片一级片一级黄色片| 日韩精品青青久久久久久| 一进一出抽搐动态| 亚洲美女黄片视频| 亚洲avbb在线观看| 国产av一区二区精品久久| 国产人伦9x9x在线观看| 美女高潮喷水抽搐中文字幕| 国产精品野战在线观看| 黄色视频,在线免费观看| 国产成+人综合+亚洲专区| 51午夜福利影视在线观看| 国产亚洲精品av在线| 日本 av在线| 欧美丝袜亚洲另类 | 桃色一区二区三区在线观看| 黄色成人免费大全| 久久精品国产亚洲av高清一级| 成人欧美大片| 国产精品二区激情视频| 亚洲精品国产一区二区精华液| 婷婷精品国产亚洲av在线| 久99久视频精品免费| 色婷婷久久久亚洲欧美| 丝袜美腿诱惑在线| 波多野结衣巨乳人妻| 88av欧美| 久久午夜综合久久蜜桃| 亚洲真实伦在线观看| 在线观看日韩欧美| 精品一区二区三区视频在线观看免费| 国产高清有码在线观看视频 | 99久久国产精品久久久| 婷婷亚洲欧美| 黄色视频不卡| 日韩欧美国产在线观看| 国产又爽黄色视频| 美女 人体艺术 gogo| 国产视频一区二区在线看| 亚洲欧美一区二区三区黑人| 最近最新中文字幕大全电影3 | 久久久久国内视频| 欧美 亚洲 国产 日韩一| a级毛片a级免费在线| 50天的宝宝边吃奶边哭怎么回事| 欧美黑人精品巨大| 欧美黄色淫秽网站| www.自偷自拍.com| 别揉我奶头~嗯~啊~动态视频| 国产亚洲av高清不卡| 亚洲国产精品成人综合色| 国产伦在线观看视频一区| 成人免费观看视频高清| 久久热在线av| 啦啦啦 在线观看视频| 91在线观看av| 夜夜爽天天搞| 麻豆久久精品国产亚洲av| 18禁黄网站禁片午夜丰满| 免费看a级黄色片| 美女大奶头视频| 欧洲精品卡2卡3卡4卡5卡区| 特大巨黑吊av在线直播 | 嫩草影院精品99| 50天的宝宝边吃奶边哭怎么回事| 欧美在线黄色| 国产视频内射| 12—13女人毛片做爰片一| 亚洲黑人精品在线| 国产亚洲精品一区二区www| 欧美午夜高清在线| 桃色一区二区三区在线观看| 12—13女人毛片做爰片一| 日韩高清综合在线| 婷婷亚洲欧美| av在线天堂中文字幕| 中文字幕av电影在线播放| 国产免费av片在线观看野外av| 中出人妻视频一区二区| 国产一区二区三区视频了| 成人av一区二区三区在线看| 亚洲成a人片在线一区二区| 国产精品香港三级国产av潘金莲| 人人澡人人妻人| 色综合站精品国产| www日本在线高清视频| 十八禁人妻一区二区| 亚洲专区中文字幕在线| 婷婷丁香在线五月| 男女床上黄色一级片免费看| 好看av亚洲va欧美ⅴa在| 色播亚洲综合网| 国产伦在线观看视频一区| 国产精品 国内视频| 丝袜在线中文字幕| www国产在线视频色| 国产欧美日韩一区二区三| 亚洲 欧美一区二区三区| 亚洲九九香蕉| 亚洲欧美精品综合一区二区三区| 在线观看日韩欧美| 国产一区在线观看成人免费| 午夜免费鲁丝| 亚洲九九香蕉| 亚洲成人免费电影在线观看| aaaaa片日本免费| 国产高清激情床上av| 精品一区二区三区av网在线观看| 黄色视频,在线免费观看| 亚洲欧美精品综合一区二区三区| 可以在线观看的亚洲视频| 国产男靠女视频免费网站| 法律面前人人平等表现在哪些方面| 美女高潮喷水抽搐中文字幕| 国产精品亚洲美女久久久| 这个男人来自地球电影免费观看| 国产精品影院久久| 国产片内射在线| 日韩三级视频一区二区三区| 亚洲最大成人中文| 好男人在线观看高清免费视频 | bbb黄色大片| 在线观看一区二区三区| 成人一区二区视频在线观看| 一夜夜www| 精品国产超薄肉色丝袜足j| 在线观看日韩欧美| 亚洲av成人不卡在线观看播放网| 免费在线观看亚洲国产| 一进一出抽搐gif免费好疼| 好男人在线观看高清免费视频 | 国产熟女午夜一区二区三区| 国产av在哪里看| 一卡2卡三卡四卡精品乱码亚洲| 久久久久久久久久黄片| 亚洲专区字幕在线| 成年人黄色毛片网站| 免费看a级黄色片| 一本精品99久久精品77| 黑丝袜美女国产一区| 精品少妇一区二区三区视频日本电影| 老司机午夜十八禁免费视频| 两个人免费观看高清视频| 99精品在免费线老司机午夜| 亚洲国产精品成人综合色| 一进一出抽搐gif免费好疼| 国产亚洲欧美精品永久| 亚洲精品美女久久av网站| 又黄又粗又硬又大视频| 一本一本综合久久| 波多野结衣av一区二区av| 久久久久久久久免费视频了| 亚洲av第一区精品v没综合| 亚洲精品国产区一区二| 色综合欧美亚洲国产小说| 久久久水蜜桃国产精品网| 日韩精品中文字幕看吧| 中文字幕人妻熟女乱码| 国产精品香港三级国产av潘金莲| 看片在线看免费视频| a级毛片在线看网站| 久久精品人妻少妇| 国内久久婷婷六月综合欲色啪| 一个人免费在线观看的高清视频| 国产视频一区二区在线看| 亚洲免费av在线视频| 18禁国产床啪视频网站| 国产免费男女视频| 最近在线观看免费完整版| 一a级毛片在线观看| 久久国产亚洲av麻豆专区| 色精品久久人妻99蜜桃| 国产男靠女视频免费网站| 黑人欧美特级aaaaaa片| 日韩欧美免费精品| 久久婷婷成人综合色麻豆| 成熟少妇高潮喷水视频| 欧美日韩中文字幕国产精品一区二区三区| 一二三四在线观看免费中文在| 国产日本99.免费观看| 日韩欧美三级三区| 在线十欧美十亚洲十日本专区| 99精品久久久久人妻精品| 婷婷六月久久综合丁香| 中文资源天堂在线| 91国产中文字幕| 成人三级黄色视频| 看免费av毛片| 最近最新免费中文字幕在线| 国产三级在线视频| 中文字幕久久专区| 日本 欧美在线| 人人妻人人澡欧美一区二区| 精品一区二区三区av网在线观看| 成人午夜高清在线视频 | 99热这里只有精品一区 | 国产三级在线视频| 高潮久久久久久久久久久不卡| 人成视频在线观看免费观看| 久久久久亚洲av毛片大全| 国产aⅴ精品一区二区三区波| 精品免费久久久久久久清纯| 成人av一区二区三区在线看| 丰满人妻熟妇乱又伦精品不卡| 香蕉丝袜av| 日韩欧美 国产精品| 黄色丝袜av网址大全| 欧美日韩乱码在线| 久久久久久九九精品二区国产 | 久久久久免费精品人妻一区二区 | 黄色丝袜av网址大全| 日本精品一区二区三区蜜桃| 成人欧美大片| 久久中文字幕一级| 曰老女人黄片| 亚洲成av人片免费观看| 日韩精品青青久久久久久| 老司机福利观看| 亚洲精品美女久久久久99蜜臀| 无限看片的www在线观看| 亚洲aⅴ乱码一区二区在线播放 | 2021天堂中文幕一二区在线观 | 久久天堂一区二区三区四区| 日日爽夜夜爽网站| 制服丝袜大香蕉在线| 国产亚洲av高清不卡| 免费在线观看成人毛片| 男人舔女人下体高潮全视频| 成人三级做爰电影| 亚洲成人国产一区在线观看| 色播在线永久视频| 亚洲精品中文字幕一二三四区| 成人特级黄色片久久久久久久|