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

    用lambda表達式和std::function類模板改進泛型抽象工廠設(shè)計

    2017-10-28 18:07閔軍羅泓
    軟件工程 2017年9期
    關(guān)鍵詞:表達式代碼工廠

    閔軍 羅泓

    摘 要:抽象工廠模式在軟件設(shè)計中應用廣泛,但抽象工廠模式的傳統(tǒng)實現(xiàn)方式存在諸多不足。隨著技術(shù)的發(fā)展,設(shè)計模式的實現(xiàn)方式也在不斷改進。C++11新標準發(fā)布之后,涌現(xiàn)了許多改進方案。本文將在這些改進的基礎(chǔ)之上,使用C++11的lambda表達式、std::function類模板等新技術(shù),通過數(shù)據(jù)結(jié)構(gòu)和代碼結(jié)構(gòu)的優(yōu)化等方式進一步改進泛型抽象工廠設(shè)計,給出一種“新型泛型抽象工廠”的實現(xiàn)方式。實驗結(jié)果表明,該方式更為簡潔高效、復用性更強,優(yōu)雅地實現(xiàn)了對產(chǎn)品類型可變、參數(shù)可變、異類組合的支持。該實現(xiàn)方式及代碼實用性較強,可以在軟件項目中實際使用。

    關(guān)鍵詞:C++11;lambda;function;泛型;抽象工廠

    中圖分類號:TP311.1 文獻標識碼:A

    Abstract:The abstract factory pattern has been widely used in software design,but there are still some shortcomings in the traditional implementation of the abstract factory design pattern.With the development of technology,the implementation of design patterns is constantly improving.After the release of new C++11 standards,many improvement have emerged.Based on these improvements,this paper further improves the generic abstract factory design by adopting the new technology of the C++11 lambda expression and the std::function class template,optimizing the data structure and the code structure.The implementation model of New Generic Abstract Factory is proposed.Experimental results show that this model is more concise and efficient with better reusability.This model can gracefully implement the support to variable product types,variable parameters,and heterogeneous combinations.With decent practicality,this implementation method and code can be actually applied in software projects.

    Keywords:C++11;lambda;function;generic;abstract factory

    1 引言(Introduction)

    抽象工廠模式是最具一般性、最為抽象的一種工廠模式,由于該模式的使用有利于達到高內(nèi)聚低耦合的設(shè)計目的,因此在軟件設(shè)計中得到廣泛應用。不過,抽象工廠模式的傳統(tǒng)實現(xiàn)方式存在諸多不足,諸如實現(xiàn)復雜、類型煩瑣、類型依賴性強、可復用性弱等。隨著技術(shù)的發(fā)展,人們不斷使用多態(tài)機制、模板編程、泛型編程等技術(shù)改進設(shè)計模式[1]。C++11新標準發(fā)布之后,涌現(xiàn)了許多改進方案,比如將具體工廠構(gòu)造函數(shù)保存到關(guān)聯(lián)容器中實現(xiàn)自動注冊、使用可變參數(shù)模板和類模板實現(xiàn)泛型工廠、使用內(nèi)嵌類簡化設(shè)計等。本文將在這些改進的基礎(chǔ)之上,使用C++11的lambda表達式、std::function類模板等新技術(shù),通過數(shù)據(jù)結(jié)構(gòu)和代碼結(jié)構(gòu)的優(yōu)化等方式進一步改進泛型抽象工廠設(shè)計,給出一種更為簡潔高效的“新型泛型抽象工廠”的實現(xiàn)方式。

    2 抽象工廠模式(Abstract factory pattern)

    抽象工廠模式屬于創(chuàng)建型模式,簡單地說,抽象工廠模式就是用于完成“多系列相互依賴的具體產(chǎn)品”的創(chuàng)建工作,避免客戶程序和這種“多系列具體產(chǎn)品創(chuàng)建工作”的緊密耦合[2]。抽象工廠模式結(jié)構(gòu)如圖1所示。

    3 C++11實現(xiàn)泛型抽象工廠(Implement generic

    abstract factory by C++11)

    泛型編程技術(shù)能夠提高編程效率、實現(xiàn)非侵入性實現(xiàn),大大提高代碼復用率[3]。在設(shè)計模式的實現(xiàn)技術(shù)中,泛型編程技術(shù)是改進抽象工廠傳統(tǒng)實現(xiàn)方式的一種有效手段。通過C++11新標準泛型編程技術(shù),能夠?qū)崿F(xiàn)產(chǎn)品類型可變、參數(shù)可變、異類組合的泛型抽象工廠。圖2顯示了一種C++11實現(xiàn)的可變參數(shù)泛型抽象工廠的結(jié)構(gòu),這種實現(xiàn)方式包含兩個類模板:泛型工廠類GenericFactory、內(nèi)嵌類具體工廠注冊類Register[4]。

    4 使用lambda表達式和std::function類模板設(shè)計“新型泛型抽象工廠”(Design New generic abstract factory by lambda expression and std::function class template)

    上面提到的泛型抽象工廠設(shè)計方式,雖然使用了關(guān)聯(lián)容器、可變參數(shù)模板和內(nèi)嵌類等技術(shù),但也存在可以優(yōu)化的地方。下面,本文將在這些改進的基礎(chǔ)之上進一步優(yōu)化,介紹更為簡潔高效的“新型泛型抽象工廠”的實現(xiàn)方式。

    4.1 “新型泛型抽象工廠”的結(jié)構(gòu)圖endprint

    “新型泛型抽象工廠”的結(jié)構(gòu)如圖3所示。

    4.2 用lambda表達式代替內(nèi)嵌類

    lambda表達式是C++11引入的最重要、最常用的特性之一,它具有簡潔高效、聲明式編程風格、可實現(xiàn)功能閉包等優(yōu)勢[4]。前面介紹的泛型抽象工廠設(shè)計方式,使用了內(nèi)嵌類來生成具體產(chǎn)品的創(chuàng)建函數(shù)[5],其結(jié)構(gòu)圖參見圖2。在前面設(shè)計的基礎(chǔ)之上,可以用lambda表達式來代替內(nèi)嵌類,直接以lambda表達式作為具體產(chǎn)品的創(chuàng)建函數(shù),其結(jié)構(gòu)圖參見圖3,代碼可參見后面的完整代碼。兩相對比,使用lambda表達式代替內(nèi)嵌類,明顯簡化了代碼結(jié)構(gòu),不過可讀性也許會差一些。

    4.3 用std::function類模板存儲和操作lambda表達式

    Lambda表達式是一種匿名函數(shù)對象(或稱仿函數(shù)),其具體類型是一種依賴于具體實現(xiàn)的、唯一的函數(shù)對象類型,這種類型的名字只有編譯器才知道[6]。雖然某些簡單的lambda表達式可以直接或間接地轉(zhuǎn)換為函數(shù)指針,但一般都推薦使用auto關(guān)鍵字來標識lambda表達式的類型;若想獲取lambda表達式的具體類型,可以用C++11提供的decltype類型操作符得到;如果用戶要把lambda表達式用作參數(shù)傳遞,那就需要使用std::function對象進行捕獲。

    std::function類模版是一種通用的、多態(tài)的函數(shù)封裝工具,它是對C++中現(xiàn)有各種可調(diào)用實體的一種類型安全的封裝(像函數(shù)指針這類可調(diào)用實體是類型不安全的)[7]。通過這種封裝,形成一種單一的可調(diào)用的std::function新對象,使得代碼變得簡單明了。

    4.4 用std::function類模板存儲和操作具體工廠信息

    在“新型泛型抽象工廠”的設(shè)計中,關(guān)鍵數(shù)據(jù)成員m_mapConFactory用于存放具體產(chǎn)品標識和具體工廠創(chuàng)建函數(shù)指針的列表信息。使用lambda表達式代替內(nèi)嵌類作為具體產(chǎn)品的創(chuàng)建函數(shù),m_mapConFactory存儲的數(shù)據(jù)類型就需要作相應改變。

    m_mapConFactory中原來存儲的是具體產(chǎn)品創(chuàng)建函數(shù)的函數(shù)指針(圖2)。現(xiàn)在就不能直接保存為函數(shù)指針,而需要保存為以std::function類模板封裝的lambda表達式,具體定義參見圖3和后面的完整代碼。

    5 優(yōu)化“新型泛型抽象工廠”的數(shù)據(jù)結(jié)構(gòu)(Optimize

    data structure of New generic abstract factory)

    為了優(yōu)化“新型泛型抽象工廠”保存的數(shù)據(jù)結(jié)構(gòu),對關(guān)鍵數(shù)據(jù)成員m_mapConFactory的結(jié)構(gòu)做了調(diào)整,具體可參見后面完整代碼中m_mapConFactory的定義。通過這種調(diào)整,再配合其他相應修改,用戶注冊具體工廠變得更為簡便,只需指定具體產(chǎn)品的類型即可完成注冊(參見后面示例)。具體工廠注冊時,“新型泛型抽象工廠”類將根據(jù)用戶提供的具體產(chǎn)品類型,自動生成唯一的具體產(chǎn)品序號、獲取其類型名稱,無須用戶再從外部輸入具體產(chǎn)品的類型標識。最后,將這些數(shù)據(jù)就地構(gòu)造為容器元素,存入m_mapConFactory容器中。

    6 “新型泛型抽象工廠”的代碼優(yōu)化(Code

    optimization of New generic abstract factory)

    “新型泛型抽象工廠”的代碼設(shè)計,也進行了一些相關(guān)優(yōu)化。該GenericFactory類的模板參數(shù)已作簡化,只包含兩個部分:抽象產(chǎn)品類、具體產(chǎn)品構(gòu)造函數(shù)可變參數(shù)列表0—n項。這種模板參數(shù)的分配方式是比較合理的,實質(zhì)上是規(guī)定了具體產(chǎn)品構(gòu)造函數(shù)的具體類別:包括返回值和參數(shù)列表,返回值必須是AbsProduct*指針類型、參數(shù)類型和個數(shù)列表Args...args必須一致。當具體產(chǎn)品構(gòu)造函數(shù)的參數(shù)類型和個數(shù)不同時,將產(chǎn)生不同版本的GenericFactory實例。

    該GenericFactory類通過靜態(tài)函數(shù)和靜態(tài)變量的方式實現(xiàn)簡單的單件模式(Singleton),各種構(gòu)造器都是私有的,不允許外部構(gòu)造。外部只能通過調(diào)用其靜態(tài)接口函數(shù)get_Instance獲取唯一的靜態(tài)實例Singleton_GenericFactory。

    具體工廠注冊函數(shù)Register只有一個模板參數(shù):具體產(chǎn)品類型ConProduct,要求ConProduct類必須是AbsProduct的子類。在具體產(chǎn)品構(gòu)造函數(shù)返回值為AbsProduct*指針類型、參數(shù)列表一致的前提下,可以注冊不同實現(xiàn)細節(jié)的具體工廠。

    當函數(shù)參數(shù)為常量引用時,用戶傳入臨時對象或已創(chuàng)建的變量都可以,因此,GenericFactory類的成員函數(shù)都盡量使用常量引用方式傳參,減少臨時對象的構(gòu)造和拷貝。另外,無須修改數(shù)據(jù)成員的成員函數(shù)都盡量聲明為const類型,以提高代碼的健壯性。

    7 “新型泛型抽象工廠”完整實現(xiàn)代碼(Complete

    implementation code of New generic abstract

    factory)

    下面給出本文介紹的“新型泛型抽象工廠”的完整實現(xiàn)代碼。需要注意的是,本文給出的代碼是基于C++11新標準實現(xiàn)的,必須在支持C++11新標準的編譯器中才能正常編譯使用,比如Visual Studio 2013及以上版本。

    8 “新型泛型抽象工廠”的實際使用(Actual use of

    New generic abstract factory)

    8.1 “新型泛型抽象工廠”的使用方式

    “新型泛型抽象工廠”設(shè)計比較合理周全,可以滿足抽象工廠、簡單工廠、可變參數(shù)、異類組合、具體產(chǎn)品數(shù)量繁多等情況的實現(xiàn)需求[8]。使用也很簡單,首先創(chuàng)建各種具體工廠,方法就是通過GenericFactory::get_Instance調(diào)用其Register注冊函數(shù),將各種具體工廠的創(chuàng)建函數(shù)指針存入m_mapConFactory容器中。接下來,用戶便可以通過GenericFactory::get_Instance調(diào)用各種公共接口函數(shù),更為靈活方便地使用各種功能。endprint

    用戶可以調(diào)用getNum獲取某具體產(chǎn)品類型的序號;調(diào)用getStr獲取某具體產(chǎn)品類型的標識字符串;調(diào)用getSize獲取現(xiàn)有具體工廠數(shù)目。創(chuàng)建和注銷具體工廠的各種接口函數(shù)都設(shè)計了相應的重載函數(shù),用戶可以通過具體產(chǎn)品序號或具體產(chǎn)品類型字符串完成所需工作。需要注意的是,getConProduct接口返回的是容器內(nèi)部分配的堆內(nèi)存指針,用戶需要管理其生命周期,建議使用getConProduct_shared_ptr或getConProduct_unique_ptr接口,它返回的是智能指針,這樣,用戶就不用管理其生命周期。

    若用戶需求比較復雜,可以通過函數(shù)封裝方式實現(xiàn)抽象工廠的需要,將一系列相關(guān)產(chǎn)品封裝在一個函數(shù)當中,實現(xiàn)一次性創(chuàng)建一系列相關(guān)產(chǎn)品的需要(參見后面示例8.3)。

    8.2 具體產(chǎn)品構(gòu)造函數(shù)的參數(shù)可變

    如果已經(jīng)定義了Shape基類和Rect、Circle兩個子類,便可以通過下面代碼使用“新型泛型抽象工廠”,實現(xiàn)具體工廠的注冊和具體產(chǎn)品的創(chuàng)建。Rect、Circle兩個子類的構(gòu)造函數(shù)參數(shù)可變,參數(shù)個數(shù)、類型都可以各不相同。這里,子類Rect的構(gòu)造函數(shù)有三個參數(shù)unsigned、CPoint、CPoint,子類Circle的構(gòu)造函數(shù)有兩個參數(shù)CPoint、double[9]。比如,下面代碼用于完成注冊具體工廠、創(chuàng)建具體產(chǎn)品對象并調(diào)用其Draw函數(shù)的工作:

    8.3 具體工廠的異類組合

    在抽象工廠應用中,經(jīng)常提到一個典型案例,跨國公司計算不同國家員工工資時可能用到異類組合的例子。假設(shè)美國員工工資包括獎金B(yǎng)onus、津貼Subsidy、稅收Tax等三個部分,中國員工工資包括獎金B(yǎng)onus、津貼Subsidy、稅收Tax、住房公積金Found等四個部分。使用本文改進的“新型泛型抽象工廠”,通過函數(shù)封裝不同抽象工廠的需要,便能更為優(yōu)雅地實現(xiàn)這種異類組合[9]。比如,下面代碼用于完成注冊具體工廠、創(chuàng)建具體產(chǎn)品對象并調(diào)用特殊業(yè)務邏輯的工作:

    9 結(jié)論(Conclusion)

    綜上所述,抽象工廠模式的實現(xiàn)方式一直都在不斷改進。C++11新標準發(fā)布之后,涌現(xiàn)了許多改進方案。本文在這些改進的基礎(chǔ)之上,使用C++11的lambda表達式、std::function類模板等新技術(shù),通過數(shù)據(jù)結(jié)構(gòu)和代碼結(jié)構(gòu)的優(yōu)化等方式進一步改進泛型抽象工廠設(shè)計,給出了一種更為簡潔高效的“新型泛型抽象工廠”的實現(xiàn)方式。實驗結(jié)果表明,該方式更為簡潔高效、復用性更強,優(yōu)雅地實現(xiàn)了對產(chǎn)品類型可變、參數(shù)可變、異類組合的支持。該實現(xiàn)方式及代碼實用性較強,可以在軟件項目中實際使用。

    參考文獻(References)

    [1] Bemardi ML,Cimitile M,Lucca GD.Design pattem detection using a DSL—driven graph matching approach[J].Journal of Software Evolution&Process,2014,26(12):1233-1266.

    [2] B Rasool G,Mader P.A customizable approach to design pattems recognition based on feature types[J].Arabian Journal for Science&Engineering,2014,39(12):8851-8873.

    [3] Stephen Prata.C++ Primer Plus,Sixth Edition[M].USA:Addison-Wesley Professional,2011.

    [4] 祁宇.深入應用C++11:代碼優(yōu)化與工程級應用[M].北京:機械工業(yè)出版社,2015.

    [5] 閔軍,羅泓.C++11實現(xiàn)可變參數(shù)泛型抽象工廠[J].軟件工程,2017,20(05):18-22.

    [6] B Michael Wong(加),IBM XL編譯器中國開發(fā)團隊,著.深入理解C++11:C++11新特性解析與應用[M].北京:機械工業(yè)出版社,2013.

    [7] Marc Gregoire(美),著.張永強,譯.C++高級編程(第3版)[M].北京:清華大學出版社,2015:519-521.

    [8] B Gamma Erich(美),等,著.李英軍,等,譯.設(shè)計模式:可復用面向?qū)ο筌浖幕A(chǔ)[M].北京:機械工業(yè)出版社,2000.

    [9] B Joshua Kerievsky(美).楊光,劉基誠,譯.重構(gòu)與模式(修訂版)[M].北京:人民郵電出版社,2013:51-59.

    作者簡介:

    閔 軍(1966-),男,碩士,研究員.研究領(lǐng)域:C++程序設(shè)計,設(shè)計模式,計算機網(wǎng)絡(luò).

    羅 泓(1970-),女,專科,工程師.研究領(lǐng)域:數(shù)據(jù)分析與處理,電路設(shè)計,信息管理系統(tǒng).endprint

    猜你喜歡
    表達式代碼工廠
    一個混合核Hilbert型積分不等式及其算子范數(shù)表達式
    表達式轉(zhuǎn)換及求值探析
    淺析C語言運算符及表達式的教學誤區(qū)
    創(chuàng)世代碼
    創(chuàng)世代碼
    創(chuàng)世代碼
    創(chuàng)世代碼
    離散制造MES在照明工廠的實施與應用
    議C語言中循環(huán)語句
    植物工廠
    国产91精品成人一区二区三区| 亚洲中文日韩欧美视频| 国产99久久九九免费精品| 搞女人的毛片| 久久久久久人人人人人| www.999成人在线观看| 岛国在线免费视频观看| 亚洲成人久久爱视频| 中文字幕最新亚洲高清| 熟妇人妻久久中文字幕3abv| 久久久国产欧美日韩av| 91成年电影在线观看| 欧美成狂野欧美在线观看| 国产成人欧美在线观看| netflix在线观看网站| 国产精品国产高清国产av| 亚洲成av人片在线播放无| 国产激情久久老熟女| 亚洲国产欧美人成| 中文字幕熟女人妻在线| 欧美日韩乱码在线| 亚洲国产欧美一区二区综合| 精品熟女少妇八av免费久了| 99久久国产精品久久久| bbb黄色大片| 久久精品国产99精品国产亚洲性色| 女警被强在线播放| 久久久国产成人免费| 九九热线精品视视频播放| 国产精品日韩av在线免费观看| 久久精品综合一区二区三区| 黄色视频不卡| 嫩草影院精品99| 精品免费久久久久久久清纯| 淫秽高清视频在线观看| 日本免费a在线| 欧美成人一区二区免费高清观看 | 日韩免费av在线播放| 日本五十路高清| 此物有八面人人有两片| 神马国产精品三级电影在线观看 | 国产真实乱freesex| 欧美成狂野欧美在线观看| 性欧美人与动物交配| 国产精品永久免费网站| 久久久久久久久中文| 亚洲色图av天堂| 日本黄色视频三级网站网址| av福利片在线观看| 国产精品久久久久久久电影 | 精品无人区乱码1区二区| 97超级碰碰碰精品色视频在线观看| 青草久久国产| 免费在线观看亚洲国产| 欧美日韩亚洲国产一区二区在线观看| 精品日产1卡2卡| 亚洲欧洲精品一区二区精品久久久| 久久 成人 亚洲| 欧美日韩国产亚洲二区| 国产精品1区2区在线观看.| 亚洲av五月六月丁香网| 999精品在线视频| 精华霜和精华液先用哪个| 神马国产精品三级电影在线观看 | 曰老女人黄片| 亚洲一区二区三区不卡视频| 又紧又爽又黄一区二区| 人人妻人人看人人澡| 亚洲人成网站在线播放欧美日韩| 男人舔女人的私密视频| 波多野结衣高清无吗| 国产伦在线观看视频一区| 91老司机精品| 一本大道久久a久久精品| 国产精品98久久久久久宅男小说| 亚洲av五月六月丁香网| 三级男女做爰猛烈吃奶摸视频| 亚洲专区中文字幕在线| 九色国产91popny在线| 夜夜爽天天搞| 一边摸一边抽搐一进一小说| 久久性视频一级片| 久久久精品国产亚洲av高清涩受| 亚洲欧美精品综合久久99| 精品久久久久久久久久免费视频| 无限看片的www在线观看| 动漫黄色视频在线观看| 午夜福利18| 国产黄片美女视频| 中文字幕av在线有码专区| 免费一级毛片在线播放高清视频| 国产精品99久久99久久久不卡| 国产精品影院久久| 久久久水蜜桃国产精品网| 久久香蕉国产精品| 91成年电影在线观看| 亚洲狠狠婷婷综合久久图片| 欧美成人性av电影在线观看| 久9热在线精品视频| 欧美极品一区二区三区四区| 成人欧美大片| 岛国在线观看网站| 精品国产亚洲在线| 午夜影院日韩av| 中文字幕人妻丝袜一区二区| 精品免费久久久久久久清纯| 精品熟女少妇八av免费久了| √禁漫天堂资源中文www| 淫妇啪啪啪对白视频| 中文在线观看免费www的网站 | 巨乳人妻的诱惑在线观看| 国产成年人精品一区二区| 亚洲国产精品成人综合色| 法律面前人人平等表现在哪些方面| 国产精品98久久久久久宅男小说| 色综合亚洲欧美另类图片| 制服诱惑二区| 91九色精品人成在线观看| 欧美日本亚洲视频在线播放| 亚洲av第一区精品v没综合| 亚洲第一欧美日韩一区二区三区| 成人特级黄色片久久久久久久| 色综合亚洲欧美另类图片| 男人的好看免费观看在线视频 | 久久精品综合一区二区三区| 成熟少妇高潮喷水视频| 国产精品98久久久久久宅男小说| 国产av不卡久久| 久久久久性生活片| 怎么达到女性高潮| 日本五十路高清| 久久久久久久久久黄片| 国产精品自产拍在线观看55亚洲| 这个男人来自地球电影免费观看| 欧美丝袜亚洲另类 | 亚洲人与动物交配视频| 亚洲精品国产一区二区精华液| 国产1区2区3区精品| 在线观看免费视频日本深夜| 2021天堂中文幕一二区在线观| 免费在线观看完整版高清| 一夜夜www| 免费在线观看黄色视频的| 丰满人妻熟妇乱又伦精品不卡| 国产高清videossex| 亚洲专区字幕在线| 国产精品久久久久久亚洲av鲁大| 男人舔女人下体高潮全视频| 1024香蕉在线观看| 18禁美女被吸乳视频| 欧美人与性动交α欧美精品济南到| 色av中文字幕| 男男h啪啪无遮挡| 久久国产精品影院| 国产三级在线视频| 波多野结衣高清作品| 日本a在线网址| 久久天躁狠狠躁夜夜2o2o| 欧美色欧美亚洲另类二区| 久久伊人香网站| 99国产精品一区二区三区| 亚洲 国产 在线| 两个人免费观看高清视频| 精品国产乱码久久久久久男人| 操出白浆在线播放| 男女那种视频在线观看| 色综合婷婷激情| 12—13女人毛片做爰片一| www日本黄色视频网| 亚洲av成人av| 国模一区二区三区四区视频 | 日本在线视频免费播放| 天天一区二区日本电影三级| 午夜视频精品福利| 久久精品aⅴ一区二区三区四区| 久久久久久人人人人人| 国产高清激情床上av| av欧美777| 亚洲中文av在线| 老鸭窝网址在线观看| 国产麻豆成人av免费视频| 精品久久久久久久久久久久久| 国产精品一区二区三区四区免费观看 | 很黄的视频免费| 男女那种视频在线观看| 国产伦在线观看视频一区| 伊人久久大香线蕉亚洲五| 亚洲欧美日韩无卡精品| 99久久精品热视频| 精品久久久久久久毛片微露脸| 日本免费a在线| 中文字幕精品亚洲无线码一区| 国产精品永久免费网站| 两个人视频免费观看高清| 最近最新中文字幕大全免费视频| 国产精品亚洲av一区麻豆| 日本熟妇午夜| 国产爱豆传媒在线观看 | 可以在线观看的亚洲视频| 久久国产精品人妻蜜桃| 国产精品99久久99久久久不卡| avwww免费| 久久精品国产亚洲av高清一级| 欧美黄色淫秽网站| 一级毛片高清免费大全| 欧美三级亚洲精品| 国产精品久久久久久精品电影| 日韩欧美免费精品| 免费看十八禁软件| 国产v大片淫在线免费观看| 亚洲成av人片在线播放无| 欧美又色又爽又黄视频| 老汉色av国产亚洲站长工具| 91国产中文字幕| 在线播放国产精品三级| 成人国产综合亚洲| 亚洲成人中文字幕在线播放| 免费观看人在逋| 国产成人一区二区三区免费视频网站| 国产成人精品久久二区二区免费| 日韩免费av在线播放| 丰满人妻一区二区三区视频av | 国产激情欧美一区二区| 又紧又爽又黄一区二区| 黄色女人牲交| cao死你这个sao货| 成年女人毛片免费观看观看9| 久久久久免费精品人妻一区二区| av中文乱码字幕在线| 露出奶头的视频| 亚洲一卡2卡3卡4卡5卡精品中文| 亚洲av成人精品一区久久| 国产99白浆流出| 免费在线观看完整版高清| 嫁个100分男人电影在线观看| 人妻久久中文字幕网| 国产精品亚洲美女久久久| 国产av在哪里看| 级片在线观看| 久久精品国产综合久久久| 嫩草影视91久久| 19禁男女啪啪无遮挡网站| a级毛片在线看网站| 婷婷丁香在线五月| 国产精品乱码一区二三区的特点| 成人三级黄色视频| 叶爱在线成人免费视频播放| 亚洲人成伊人成综合网2020| 亚洲av片天天在线观看| 午夜福利在线在线| 国产精品自产拍在线观看55亚洲| 亚洲人成伊人成综合网2020| 欧美高清成人免费视频www| 最好的美女福利视频网| 亚洲av电影在线进入| aaaaa片日本免费| 亚洲av成人一区二区三| 午夜福利在线在线| 九九热线精品视视频播放| 非洲黑人性xxxx精品又粗又长| 日韩欧美在线乱码| 一级a爱片免费观看的视频| 69av精品久久久久久| 久久久久精品国产欧美久久久| 女同久久另类99精品国产91| 国产亚洲精品久久久久5区| 啦啦啦观看免费观看视频高清| 国产又色又爽无遮挡免费看| 免费在线观看亚洲国产| 日本免费一区二区三区高清不卡| 一本久久中文字幕| 搞女人的毛片| 国内毛片毛片毛片毛片毛片| 啦啦啦韩国在线观看视频| 久久精品夜夜夜夜夜久久蜜豆 | 又紧又爽又黄一区二区| 99久久无色码亚洲精品果冻| 日韩精品中文字幕看吧| 我要搜黄色片| 日日夜夜操网爽| 久久99热这里只有精品18| 性欧美人与动物交配| 久久久久久人人人人人| 午夜福利在线观看吧| 国产成+人综合+亚洲专区| 日韩三级视频一区二区三区| 欧美一级a爱片免费观看看 | netflix在线观看网站| 欧美黑人欧美精品刺激| 制服人妻中文乱码| 国产主播在线观看一区二区| 校园春色视频在线观看| 神马国产精品三级电影在线观看 | 国产av在哪里看| 亚洲色图 男人天堂 中文字幕| 又黄又爽又免费观看的视频| 免费看美女性在线毛片视频| 中文资源天堂在线| 久久久久久久午夜电影| 最新在线观看一区二区三区| 小说图片视频综合网站| 极品教师在线免费播放| 在线观看舔阴道视频| 欧美黑人欧美精品刺激| 伦理电影免费视频| 国产欧美日韩一区二区三| 可以免费在线观看a视频的电影网站| 每晚都被弄得嗷嗷叫到高潮| 禁无遮挡网站| 国产精品久久久久久久电影 | 91av网站免费观看| 久久 成人 亚洲| 久久久久久久久久黄片| 国产亚洲欧美98| 欧美激情久久久久久爽电影| 久久精品国产亚洲av香蕉五月| 18禁美女被吸乳视频| 欧美3d第一页| 一级毛片高清免费大全| 国产精品久久久av美女十八| 日韩av在线大香蕉| 国产区一区二久久| 久9热在线精品视频| 亚洲av成人精品一区久久| 日本黄色视频三级网站网址| 国产高清视频在线观看网站| 久99久视频精品免费| 国产av麻豆久久久久久久| 久久精品91蜜桃| 久久久久久大精品| 中出人妻视频一区二区| 天天一区二区日本电影三级| 久久精品国产亚洲av香蕉五月| 免费看十八禁软件| 黄色毛片三级朝国网站| 国产男靠女视频免费网站| 母亲3免费完整高清在线观看| 伦理电影免费视频| 老汉色∧v一级毛片| 亚洲狠狠婷婷综合久久图片| 一进一出抽搐动态| 国产午夜精品论理片| 国产精品av视频在线免费观看| 午夜免费激情av| 日日夜夜操网爽| 婷婷六月久久综合丁香| 在线观看免费日韩欧美大片| 91九色精品人成在线观看| 久久天堂一区二区三区四区| 三级毛片av免费| 日韩中文字幕欧美一区二区| 久久人妻福利社区极品人妻图片| 欧美大码av| 国产男靠女视频免费网站| 国产av又大| 日本黄色视频三级网站网址| 亚洲成av人片免费观看| 精品少妇一区二区三区视频日本电影| 亚洲精华国产精华精| 激情在线观看视频在线高清| 老鸭窝网址在线观看| 成人国产综合亚洲| 久久亚洲真实| 小说图片视频综合网站| 桃红色精品国产亚洲av| 国语自产精品视频在线第100页| av视频在线观看入口| 欧美日韩瑟瑟在线播放| cao死你这个sao货| 在线观看舔阴道视频| av在线天堂中文字幕| 亚洲av中文字字幕乱码综合| 90打野战视频偷拍视频| 国产激情偷乱视频一区二区| 听说在线观看完整版免费高清| 丁香欧美五月| 99riav亚洲国产免费| 免费在线观看视频国产中文字幕亚洲| 亚洲国产欧美人成| 久久伊人香网站| 国产精品98久久久久久宅男小说| 午夜影院日韩av| 69av精品久久久久久| 一级毛片精品| 久久99热这里只有精品18| 国产精品精品国产色婷婷| 国产成人影院久久av| 国产私拍福利视频在线观看| 国产主播在线观看一区二区| 亚洲aⅴ乱码一区二区在线播放 | 国产精品免费一区二区三区在线| 搡老妇女老女人老熟妇| 国产av一区在线观看免费| 大型黄色视频在线免费观看| 中亚洲国语对白在线视频| 精品国产乱子伦一区二区三区| 国产精品免费视频内射| 国产精品久久久久久精品电影| 一个人观看的视频www高清免费观看 | 免费在线观看影片大全网站| 黄频高清免费视频| 精品国内亚洲2022精品成人| 国产一区在线观看成人免费| bbb黄色大片| 久久香蕉精品热| 91av网站免费观看| 免费一级毛片在线播放高清视频| 日韩欧美一区二区三区在线观看| 97超级碰碰碰精品色视频在线观看| 亚洲精品在线美女| a级毛片在线看网站| 无限看片的www在线观看| 亚洲精品美女久久av网站| 美女扒开内裤让男人捅视频| 国产三级中文精品| 午夜福利视频1000在线观看| 91在线观看av| 久久久久久久久久黄片| 国产精品久久电影中文字幕| 日韩欧美精品v在线| 可以在线观看的亚洲视频| 亚洲中文字幕日韩| 69av精品久久久久久| 麻豆一二三区av精品| 岛国视频午夜一区免费看| 精品久久久久久成人av| 国产高清有码在线观看视频 | 三级男女做爰猛烈吃奶摸视频| 中文字幕熟女人妻在线| 国产精品一区二区免费欧美| 久久精品夜夜夜夜夜久久蜜豆 | 国产精品国产高清国产av| 久久香蕉国产精品| 高清在线国产一区| 久久国产乱子伦精品免费另类| 亚洲成av人片免费观看| 亚洲精品一卡2卡三卡4卡5卡| 亚洲性夜色夜夜综合| √禁漫天堂资源中文www| 91字幕亚洲| 亚洲精品久久国产高清桃花| 9191精品国产免费久久| 久久人人精品亚洲av| 日韩大码丰满熟妇| 特级一级黄色大片| 久久久久久国产a免费观看| svipshipincom国产片| 人人妻人人澡欧美一区二区| 成人手机av| 搞女人的毛片| 日韩三级视频一区二区三区| 免费在线观看成人毛片| 动漫黄色视频在线观看| 两个人视频免费观看高清| 中文字幕高清在线视频| 欧美黑人精品巨大| 18禁裸乳无遮挡免费网站照片| 国产成+人综合+亚洲专区| 深夜精品福利| 在线看三级毛片| 法律面前人人平等表现在哪些方面| 国产男靠女视频免费网站| 久久午夜亚洲精品久久| 亚洲专区字幕在线| 国产精品一区二区三区四区久久| 99热这里只有精品一区 | 精品久久久久久久人妻蜜臀av| 午夜免费观看网址| bbb黄色大片| 99久久久亚洲精品蜜臀av| 1024视频免费在线观看| or卡值多少钱| 日日夜夜操网爽| 黄片小视频在线播放| 成熟少妇高潮喷水视频| 此物有八面人人有两片| 午夜福利在线观看吧| 国产伦一二天堂av在线观看| 长腿黑丝高跟| 精品久久久久久久久久久久久| 欧美av亚洲av综合av国产av| 亚洲成人久久爱视频| 亚洲中文字幕日韩| 欧美在线一区亚洲| 亚洲中文日韩欧美视频| 美女黄网站色视频| 婷婷丁香在线五月| 欧美日本亚洲视频在线播放| 久久香蕉激情| 久久国产精品影院| 老鸭窝网址在线观看| 91老司机精品| 久久中文看片网| 黄色丝袜av网址大全| 国产一区在线观看成人免费| 两人在一起打扑克的视频| 黄色成人免费大全| 亚洲七黄色美女视频| 国产激情偷乱视频一区二区| 日韩精品免费视频一区二区三区| 欧美黄色淫秽网站| 久久久久久人人人人人| 午夜精品在线福利| 国产精品乱码一区二三区的特点| 亚洲人成77777在线视频| 制服人妻中文乱码| 日韩 欧美 亚洲 中文字幕| 日本撒尿小便嘘嘘汇集6| 老熟妇仑乱视频hdxx| 成人手机av| 亚洲人成网站在线播放欧美日韩| 国产精品精品国产色婷婷| 国产av麻豆久久久久久久| 男人舔女人下体高潮全视频| 国内精品久久久久久久电影| 少妇粗大呻吟视频| 一本久久中文字幕| 757午夜福利合集在线观看| 久久中文字幕人妻熟女| 波多野结衣巨乳人妻| 长腿黑丝高跟| 99热这里只有是精品50| 国产精品免费一区二区三区在线| 亚洲天堂国产精品一区在线| 国产精品久久久人人做人人爽| 国产成人欧美在线观看| 每晚都被弄得嗷嗷叫到高潮| 欧美成人一区二区免费高清观看 | 久热爱精品视频在线9| 久久亚洲真实| 曰老女人黄片| 亚洲欧美一区二区三区黑人| 国产亚洲精品综合一区在线观看 | 真人做人爱边吃奶动态| 国产高清视频在线观看网站| 成人18禁高潮啪啪吃奶动态图| 欧美av亚洲av综合av国产av| 欧美黄色淫秽网站| 日韩成人在线观看一区二区三区| 可以在线观看的亚洲视频| 一区二区三区高清视频在线| 黄频高清免费视频| 国产亚洲精品一区二区www| 免费高清视频大片| 久久久国产成人精品二区| 午夜福利高清视频| 久久久久九九精品影院| 一本大道久久a久久精品| 日本 av在线| 美女扒开内裤让男人捅视频| 国产蜜桃级精品一区二区三区| www.熟女人妻精品国产| 亚洲片人在线观看| 欧美日韩亚洲国产一区二区在线观看| 日韩 欧美 亚洲 中文字幕| 熟女少妇亚洲综合色aaa.| 国产一区在线观看成人免费| 一卡2卡三卡四卡精品乱码亚洲| 亚洲国产精品999在线| 欧美黄色淫秽网站| 日韩成人在线观看一区二区三区| 欧美一级毛片孕妇| 一级a爱片免费观看的视频| 女人被狂操c到高潮| 男女下面进入的视频免费午夜| 日本三级黄在线观看| 国产高清视频在线观看网站| 真人做人爱边吃奶动态| 国产三级黄色录像| 黑人欧美特级aaaaaa片| 精品久久久久久,| 一级作爱视频免费观看| 999久久久国产精品视频| 久9热在线精品视频| 人妻夜夜爽99麻豆av| 日韩大码丰满熟妇| 小说图片视频综合网站| 99国产精品一区二区蜜桃av| 欧美 亚洲 国产 日韩一| 亚洲精品中文字幕一二三四区| 婷婷亚洲欧美| 午夜亚洲福利在线播放| 亚洲国产精品合色在线| 免费搜索国产男女视频| 国产精品国产高清国产av| 久久久久久久午夜电影| 色综合欧美亚洲国产小说| 午夜福利在线在线| 一级作爱视频免费观看| 91字幕亚洲| 男插女下体视频免费在线播放| 久久欧美精品欧美久久欧美| 精品熟女少妇八av免费久了| 一级a爱片免费观看的视频| 级片在线观看| 亚洲中文av在线| 一本综合久久免费| 1024视频免费在线观看| 日本免费一区二区三区高清不卡| 欧美黄色淫秽网站| 久久99热这里只有精品18| 亚洲精品av麻豆狂野| 69av精品久久久久久| 婷婷亚洲欧美| 麻豆国产av国片精品| 2021天堂中文幕一二区在线观| 亚洲人成伊人成综合网2020| 国产真人三级小视频在线观看| 亚洲在线自拍视频| 国产伦人伦偷精品视频| 黑人巨大精品欧美一区二区mp4| 亚洲人成电影免费在线| 97人妻精品一区二区三区麻豆| 午夜久久久久精精品| 亚洲av电影在线进入|