日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

重温Observer模式--热水器·改(转载)

發(fā)布時間:2023/12/13 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 重温Observer模式--热水器·改(转载) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

引言

在 C#中的委托和事件 一文的后半部分,我向大家講述了Observer(觀察者)模式,并使用委托和事件實現(xiàn)了這個模式。實際上,不使用委托和事件,一樣可以實現(xiàn)Observer模式。在本文中,我將使用GOF的經(jīng)典方式,再次實現(xiàn)一遍Observer模式,同時將講述在 C#中的委托和事件 一文中沒有提及的推模式(Push)和拉模式(Pull)。

設計思想概述

在 C#中的委托和事件 一文后半部分中我已經(jīng)較詳細的講述了Observer設計模式的思想,所以這里僅簡單的提及一下。Observer設計模式中實際上只包含了兩類對象,一個是Subject(主題),一個是Observer(觀察者)。它們之間的角色是:

  • Subject:主題(被監(jiān)視對象),它往往包含著Observer所感興趣的內容。
  • Observer:觀察者,它觀察Subject。當Subject中的某件事發(fā)生的時候(通常是它所感興趣的內容改變的時候),會被自動告知,而Observer則會采取相應的行動(通常為更新自身狀態(tài)或者顯示輸出)。

它們之間交互的核心工作流程就是:

  • Subject 提供方法,比如Register()和UnRegister(),用于Observer進行注冊(表示它對Suject感興趣)和取消注冊(不再對它感興趣)。
    • Register()方法實現(xiàn)為:它接收一個Observer的引用作為參數(shù),并保存此引用。
    • 保存的方式通常為在 Subject內聲明一個集合類,比如:List<Observer>。
    • 一個Subject可以供多個Observer注冊。
  • 調用Subject實例的Register()方法,并將一個Observer的引用傳遞進去。
  • Observer 包含一個Update()方法,此方法供 Subject(通過保存的Observer的引用)以后調用。
  • Subject 包含一個Notify()方法,當某件事發(fā)生時,調用Notify(),通知Subject。
    • Notify的方法實現(xiàn)為:遍歷保存Observer引用的集合類,然后在Observer的引用上調用Update方法,更新Observer。
    • 某件事是一個不確定的事,對于熱水器來說,這個事就是“溫度達到一定高度”。它對外界暴露的方法,應該是“燒水” -- BoilWater(),而不是Notify(),所以Notify通常實現(xiàn)為私有方法。
  • Observer 向 Subject 注冊的序列圖表示如下:

    Subject事件觸發(fā)時,通知Observer調用Update()方法的序列圖如下:

    模式的接口定義

    按照面向對象設計的原則:面向接口編程,而非面向實現(xiàn)編程。那么現(xiàn)在應該首先定義Subject和Observer的接口,我們可能很自然地會想到將這兩個接口分別命名為 ISubjcet 和 IObserver。而實際上,據(jù)我查閱的一些資料,這里約定俗成的命名為:IObservable 和 IObserver,其中由 Subject 實現(xiàn) IObservable。

    NOTE:可能很多人和我當初一樣困惑,命名為ISubject不是很好么,為什么叫 IObservable?我參考了一些資料,大概的解釋是這樣的:接口定義的是一個行為,表示的是一種能力,所以對于接口的命名最好用動詞的形容詞或者名詞變體。這里,Observe是一個動詞,意為觀察,Observer是動詞的名詞變體,意為觀察者;Observable是動詞的形容詞變體,表示為可觀察的。類似的例子有很多,比如IComparable 和 IComparer 接口、IEnumerable 和 IEnumerator 接口等。

    現(xiàn)在我們先來看Subject需要實現(xiàn)的接口IObservable。

    IObservable接口

    首先創(chuàng)建解決方案ObserverPattern,并在其下添加控制臺項目ConsoleApp,然后假如IObservable.cs文件,來完成這個接口。如同我們上面分析的,Suject將實現(xiàn)這個接口,它只用定義兩個方法 Register()和Unregister:

    public interface IObservable {
    ??? void Register(IObserver obj);?????? // 注冊IObserver
    ??? void Unregister(IObserver obj);???? // 取消IObserver的注冊
    }

    注意它的兩個方法接收 IObserver類型的對象,分別用于注冊和取消注冊。

    IObserver 接口

    現(xiàn)在我們再來完成IObserver接口,所有的Observer都需要實現(xiàn)這個接口,以便在事件發(fā)生時能夠被 自動告知(自動調用其Update()方法,改變自身狀態(tài)),它僅包含一個Update()方法:

    public interface IObserver {
    ??? void Update();????? // 事件觸發(fā)時由Subject調用,更新自身狀態(tài)
    }

    再強調一遍,這里的關鍵就是Update()方法不是由Observer本身調用,而是由Subject在某事發(fā)生時調用。

    抽象基類 SubjectBase

    注意到上面序列圖中的Container(容器),它用于保存IObserver引用的方式,對于很多IObservable的實現(xiàn)來說可能都是一樣的,比如說都用List<IObserver>或者是Hashtable等。所以我們最好再定義一個抽象類,讓它實現(xiàn) IObservable 接口,并使用List<IObserver>作為容器的一個默認實現(xiàn),以后我們再創(chuàng)建實現(xiàn)IObservalbe的類(Subject),只需要繼承這個基類就可以了,這樣可以更好地代碼重用:

    public abstract class SubjectBase : IObservable {
    ??? // 使用一個 List<T> 作為 IObserver 引用的容器
    ??? private List<IObserver> container = new List<IObserver>();
    ???
    ??? public void Register(IObserver obj) {
    ?????? container.Add(obj);
    ??? }

    ??? public void Unregister(IObserver obj) {
    ?????? container.Remove(obj);
    ??? }

    ??? protected virtual void Notify() {?????? // 通知所有注冊了的Observer
    ?????? foreach (IObserver observer in container) {
    ?????????? observer.Update();?????????? // 調用Observer的Update()方法
    ?????? }
    ??? }
    }

    有了這樣兩個接口,一個抽象類我們的UML類圖便可以畫出來了:

    注意這里也可以不使用IObservable接口,直接定義一個抽象類,定義IObservable接口能進一步的抽象,更靈活一些,可以基于這個接口定義出不同的抽象類來(主要區(qū)別為Container的實現(xiàn)不同,可以用其他的集合類)。

    Observer模式的實現(xiàn)

    現(xiàn)在我們來實現(xiàn)Observer模式,我們先創(chuàng)建我們的實體類(Concrete Class):熱水器(Heater),報警器(Alarm),顯示器(Screen)。其中,熱水器是Subject,報警器和顯示器是Observer。報警器和顯示器關心的東西是熱水器的水溫,當熱水器的水溫大于97度時,顯示器需要顯示“水快燒開了”,報警器發(fā)出聲音,也提示“嘟嘟嘟,水快燒開了”。

    下面的代碼非常的簡單明了,也添加了注釋,我就不做說明了:

    熱水器(Subject)的實現(xiàn)

    熱水器繼承自SujectBase基類,并添加了BoilWater()方法。

    public class Heater : SubjectBase {
    ??? private string type;????????????? // 添加型號作為演示
    ??? private string area;????????????? // 添加產(chǎn)地作為演示
    ??? private int temprature;???????? // 水溫

    ??? public Heater(string type, string area) {
    ?????? this.type = type;
    ?????? this.area = area;
    ?????? temprature = 0;
    ??? }

    ??? public string Type { get { return type; } }
    ??? public string Area { get { return Area; } }

    ??? public Heater() : this("RealFire 001", "China Xi'an") { }

    ??? // 供子類覆蓋,以便子類拒絕被通知,或添加額外行為
    ??? protected virtual void OnBoiled() {
    ?????? base.Notify(); // 調用父類Notify()方法,進而調用所有注冊了的Observer的Update()方法
    ??? }

    ??? public void BoilWater() {?????? // 燒水
    ?????? for (int i = 0; i <= 99; i++) {
    ?????????? temprature = i+1;
    ?????????? if (temprature > 97) {?????? // 當水快燒開時(溫度>97度),通知Observer
    ????????????? OnBoiled();
    ?????????? }
    ?????? }
    ??? }
    }

    報警器 和 顯示器 (Observer)的實現(xiàn)

    報警器(Alarm)和顯示器(Screen)的實現(xiàn)是類似的,僅僅為了說明多個Observer可以注冊同一個Subject。

    // 顯示器
    public class Screen : IObserver {

    ??? // Subject在事件發(fā)生時調用,通知Observer更新狀態(tài)(通過Notify()方法)
    ??? public void Update() {
    ?????? Console.WriteLine("Screen".PadRight(7) + ": 水快燒開了。");
    ??? }
    }
    // 報警器
    public class Alarm : IObserver {
    ??? public void Update() {
    ?????? Console.WriteLine("Alarm".PadRight(7) + ":嘟嘟嘟,水溫快燒開了。");
    ??? }
    }

    運行程序

    接下來,我們運行一下程序:

    class Program {
    ??? static void Main(string[] args) {

    ?????? Heater heater = new Heater();
    ?????? Screen screen = new Screen();
    ?????? Alarm alarm = new Alarm();

    ?????? heater.Register(screen);???? // 注冊顯示器
    ?????? heater.Register(alarm);???????? // 注冊熱水器

    ?????? heater.BoilWater();???????????? // 燒水
    ?????? heater.Unregister(alarm);??? // 取消報警器的注冊

    ?????? Console.WriteLine();
    ?????? heater.BoilWater();???????????? // 再次燒水
    ??? }
    }

    輸出為:

    Screen : 水快燒開了。
    Alarm? :嘟嘟嘟,水快燒開了。
    Screen : 水快燒開了。
    Alarm? :嘟嘟嘟,水快燒開了。
    Screen : 水快燒開了。
    Alarm? :嘟嘟嘟,水快燒開了。

    Screen : 水快燒開了。
    Screen : 水快燒開了。
    Screen : 水快燒開了。

    推模式 和 拉模式

    像上面這種實現(xiàn)方式,基本上是沒有太大意義的。比如說,我們通常會希望在Screen上能夠即時地顯示水的溫度,而且當水在100度的時候顯示“水已經(jīng)燒開了”,而非“水快燒開了”。我們還可能希望顯示熱水器的型號和產(chǎn)地。所以我們需要 在Observer的Update()方法中能夠獲得 Subject中所發(fā)生的事件的進展狀況 或者事件觸發(fā)者Suject的狀態(tài)和屬性。在本例中事件的進展狀況,就是水的溫度;事件觸發(fā)者(Suject)的狀態(tài)和屬性,則為 熱水器的型號和產(chǎn)地。此時,我們有兩種策略,一種是 推模式,一種是拉模式,我們先看看推模式。

    Observer中的推模式

    顧名思義,推模式就是Subject在事件發(fā)生后,調用Notify時,將事件的狀況(水溫),以及自身的屬性(狀態(tài))封裝成一個對象,推給Observer。而如何推呢?當然是通過Notify()方法,讓Notify()方法接收這個對象,在Notify()方法內部,再次將對象傳遞給Update()方法了。那么現(xiàn)在要做兩件事:1、創(chuàng)建新類型,這個類型封裝了我們想要推給Observer(顯示器)的事件進展狀況(水溫),以及事件觸發(fā)者Subject(熱水器)的屬性(或者叫狀態(tài))。

    我們在ObserverPattern解決方案下重新建一個控制臺項目,起名為ConsoleApp2,并設置為啟動項目。將上一項目ConsoleApp中的文件復制進來,然后我們創(chuàng)建一個新類型BoiledEventArgs,用它來封裝我們推給Observer的數(shù)據(jù)。

    public class BoiledEventArgs {
    ??? private int temperature;???? // 溫度
    ??? private string type;???????? // 類型
    ??? private string area;???????? // 產(chǎn)地

    ??? public BoiledEventArgs(int temperature, string type, string area) {
    ?????? this.temperature = temperature;
    ?????? this.type = type;
    ?????? this.area = area;
    ??? }

    ??? public int Temperature { get { return temperature; } }
    ??? public string Type { get { return type; } }
    ??? public string Area { get { return area; } }
    }

    注意這個類型的命名雖然為BoiledEventArgs,但是和.Net中的內置類型EventArgs沒有任何聯(lián)系,只是起了這樣一個名字。

    2、我們需要依次修改 IObserver接口,Screen類的Update()方法,SubjectBase類,以及Heater類,讓他們可以接收這個EventArgs參數(shù)。出于示范的目的,后面的例子我都將不再使用警報器Alarm類,它的存在僅僅是為了說明多個Observer可以注冊一個Subject,上面我們已經(jīng)示范過了,所以現(xiàn)在我們把它刪掉。

    我們先來看下IObserver接口:

    public interface IObserver {
    ??? // 推模式的實現(xiàn)方式,接收一個BoiledEventArgs
    ??? void Update(BoiledEventArgs e);
    }

    接口變了,顯示器(Screen)的實現(xiàn)也需要修改:

    public class Screen : IObserver {
    ??? private bool isDisplayedType = false;????? // 標記變量,標示是否已經(jīng)打印過
    ??? public void Update(BoiledEventArgs e) {

    ?????? // 打印產(chǎn)地和型號,只打印一次
    ?????? if (!isDisplayedType) {
    ?????????? Console.WriteLine("{0} - {1}: ", e.Area, e.Type);
    ?????????? Console.WriteLine();
    ?????????? isDisplayedType = true;
    ?????? }

    ?????? if (e.Temperature < 100) {??
    ?????????? Console.WriteLine(
    ????????????? String.Format("Alarm".PadRight(7) + ":水快燒開了,當前溫度:{0}。", e.Temperature));
    ?????? } else {
    ?????????? Console.WriteLine(
    ????????????? String.Format("Alarm".PadRight(7) + ":水已經(jīng)燒開了!!"));?? ?????????????
    ?????? }
    ??? }
    }

    現(xiàn)在可以看到,在Update()方法中,通過傳遞進來的BoiledEventArgs參數(shù),我們可以獲得事件進展(溫度),以及事件觸發(fā)者的信息(產(chǎn)地和型號)了。

    接下來我們看這個 BoiledEventArgs是如何傳遞給 Update()方法的,我們看下SubjectBase基類 和 熱水器Heater需要做怎樣的修改:

    public abstract class SubjectBase : IObservable {
    ??? // 其余略...

    ??? protected virtual void Notify(BoiledEventArgs e) {??? // 通知所有注冊了的Observer
    ?????? foreach (IObserver observer in container) {
    ?????????? observer.Update(e);????????? // 調用Observer的Update()方法
    ?????? }
    ??? }
    }

    public class Heater : SubjectBase {
    ??? // 其余略 ...

    ??? // 供子類覆蓋,以便子類拒絕被通知,或者添加額外行為
    ??? protected virtual void OnBoiled(BoiledEventArgs e) {
    ?????? base.Notify(e);????????? // 調用基類方法,通知Observer
    ??? }

    ??? public void BoilWater() {?????? // 燒水
    ?????? for (int i = 0; i <= 99; i++) {
    ?????????? temprature = i + 1;
    ?????????? if (temperature > 97) {????? // 當水快燒開時(溫度>97度),通知Observer
    ???????????? BoiledEventArgs e = new BoiledEventArgs(temperature, type, area);
    ????????????? OnBoiled(e);
    ?????????? }
    ?????? }
    ??? }
    }

    我們看到,在事件發(fā)生時(水溫>97度),我們根據(jù)事件進展狀況和熱水器的屬性創(chuàng)建了BoiledEventArgs類型的實例,并且傳遞給了OnBoiled()方法,進而調用了基類的方法,傳遞了該實例。

    我們再次對程序進行一下測試:

    class Program {
    ??? static void Main(string[] args) {
    ?????? Heater heater = new Heater();
    ?????? Screen screen = new Screen();

    ?????? heater.Register(screen);???? // 注冊顯示器
    ?????? heater.BoilWater();???????????? // 燒水
    ??? }
    }

    輸出為:
    ChinaXi'an - RealFire 001:

    Alarm? :水快燒開了,當前溫度:98。
    Alarm? :水快燒開了,當前溫度:99。
    Alarm? :水已經(jīng)燒開了!!

    Observer 中的拉模式

    繼續(xù)進行之前,我們在ObserverPattern解決方案下,再創(chuàng)建一個新的Console項目,命名為ConsoleApp3,然后把ConsoleApp2 項目下的文件拷貝過來,把啟動項目設置為ConsoleApp3。

    拉模式的意思就是說,Subject(熱水器)在事件發(fā)生時(水溫超過97度),并非將自身狀態(tài)封裝成對象通過Notify()方法,進而再通過Observer的引用,調用Update()方法傳遞給Observer(顯示器),而是直接將自身的引用(以基類或者Object的形式)傳遞過去。Observer在Update()方法中,對傳遞進來的引用進行一個向下轉換(Downcast),轉換成具體的Subject類(比如熱水器),然后通過這個引用調用Subject實體類(熱水器)的公共屬性獲取狀態(tài)信息(從中把有用數(shù)據(jù)拉出來 :-)。

    我們需要再次對IObserver接口的Update()方法修改,相應的修改還要修改SubjectBase基類、Heater類 以及 IObserver接口的實現(xiàn)--顯示器類(Screen)。

    public interface IObserver {
    ??? // 拉模式的Update()方法定義
    ??? void Update(IObservable sender);
    }

    注意這里接收一個IObservable類型作為Update()方法的參數(shù),而IObservable接口本身只包含Regesiter()和Unregister()兩個方法,所以在IObserver的實現(xiàn)中,這里要進行向下轉換,轉換為響應的實體類對象,才能獲得對象的屬性。這里也可以接受一個Object類型參數(shù)。

    我們現(xiàn)在看這個接口的實現(xiàn),顯示器類(Screen):

    public class Screen : IObserver {
    ??? private bool isDisplayedType = false;

    ??? public void Update(IObservable obj) {

    ?????? // 這里存在一個向下轉換(由繼承體系中高級別的類向低級別的類轉換)。
    ?????? Heater heater = (Heater)obj;

    ?????? // 打印產(chǎn)地和型號,只打印一次
    ?????? if (!isDisplayedType) {
    ?????????? Console.WriteLine("{0} - {1}: ", heater.Area, heater.Type);
    ?????????? Console.WriteLine();
    ?????????? isDisplayedType = true;????????????
    ?????? }

    ?????? if (heater.Temperature < 100) {???? // 通過熱水器引用heater獲取溫度
    ?????????? Console.WriteLine(
    ????????????? String.Format("Alarm".PadRight(7) + ":水快燒開了,當前溫度:{0}。", heater.Temperature));
    ?????? } else {
    ?????????? Console.WriteLine(
    ????????????? String.Format("Alarm".PadRight(7) + ":水已經(jīng)燒開了!!"));?? ?????????????
    ?????? }
    ??? }
    }

    接下來我們再看下 SubjectBase基類,以及熱水器Heater的修改:

    public class SubjectBase
    ??? // 其余略...

    ??? // 接受一個 IObservable 類型
    ??? protected virtual void Notify(IObservable obj) {????? // 通知所有注冊了的Observer
    ?????? foreach (IObserver observer in container) {
    ?????????? observer.Update(obj);??????? // 調用Observer的Update()方法
    ?????? }
    ??? }
    }

    public class Heater : SubjectBase {
    ??? // 其余略...

    ??? // 新添屬性 Temperature
    ??? public int Temperature { get { return temperature; } }

    ??? // 供子類覆蓋,以便子類拒絕被通知,或者添加額外行為
    ??? protected virtual void OnBoiled() {
    ?????? base.Notify(this);?????????? // <-- 將本身傳遞過去
    ??? }

    ??? public void BoilWater() {?????? // 燒水
    ?????? for (int i = 0; i <= 99; i++) {
    ?????????? temperature = i+1;
    ?????????? if (temperature > 97) {???????? // 當水快燒開時(溫度>97度),通知Observer
    ????????????? OnBoiled();?????????? // <-- 修改了這里
    ?????????? }
    ?????? }
    ??? }
    }

    注意,Heater類以前不提供對temperature字段的訪問,而為了能在Observer(顯示器)的Update()方法中的通過引用訪問到temperature,我們需要為Heater類再添加一個 Temperature屬性:

    public int Temperature { get { return temperature; } }

    而在調用Notify()方法時,我們通過this關鍵字將對熱水器Heater本身的引用傳遞了進去:

    base.Notify(this);?????????? // <-- 將本身傳遞過去

    我們再來做個測試:

    class Program {
    ??? static void Main(string[] args) {
    ?????? Heater heater = new Heater();
    ?????? Screen screen = new Screen();

    ?????? heater.Register(screen);???? // 注冊顯示器
    ?????? heater.BoilWater();???????????? // 燒水
    ??? }
    }

    輸出為:
    ChinaXi'an - RealFire 001:

    Alarm? :水快燒開了,當前溫度:98。
    Alarm? :水快燒開了,當前溫度:99。
    Alarm? :水已經(jīng)燒開了!!

    可以看到和前面完全一樣的輸出。

    推模式和拉模式 的區(qū)別

    那么大家一定想問,使用推模式和拉模式,有什么區(qū)別呢?

    • 推模式的好處是 按需供給,想要提供給 Observer端什么數(shù)據(jù),就將這些數(shù)據(jù)封裝成對象,傳遞給Observer,缺點是需要創(chuàng)建自定義的EventArgs對象。
    • 拉模式的好處 則是不需要另外定義對象,直接將自身的引用傳遞進去就可以了。但是缺點是我們可能會需要暴露我們不想暴露的內部成員,比如本例中的temperature。我們期望將它作為類的內部數(shù)據(jù),僅提供給顯示器。但是使用拉模式,你只得為它再提供一個公共的Temperature訪問器,這樣在程序的其他的地方也可以訪問到了,比如說在Program里。除此以外,我們不期望Screen可以進行燒水BoilWater()這一動作,但是由于它獲得了Heater的引用,而BoilWater()方法又是Public公共的,所以在Update()方法中也具備了對熱水器操作的能力,比如調用 BoilWater() 方法。

    .Net 中沒有內置的IObserver和IObservable接口,因為在.Net中,可以通過委托和事件來完成,但是一樣面臨選擇推模式還是拉模式的問題,何時使用哪種策略完全依賴于設計者,你也可以將兩種方式都實現(xiàn)了,比如,將IObserver接口定義成這樣:

    // 類似微軟的實現(xiàn):兩個都用 ...
    void Update(Object sender, BoiledEventArgs e);

    注意,這里我用得是BoiledEventArgs作為Update()的參數(shù),這里顯然不夠合適,如果期望這個接口可以為各種Observer服務,而不僅限于燒水這一事件,那么最好定義一個基類 EventArgs,然后對于各種不同的事件,定義不同的EventArgs類,再讓它們去繼承EventArgs。如此,可以得到下面的接口定義:

    void Update(Object sender, EventArgs e);

    呵呵,看到這里諸君應該都明白了吧,微軟對這個方法原型定義了一個委托,叫做EventHandler:

    public delegate void EventHandler(object sender, EventArgs e);

    再談下去又繞到委托和事件了,我們回到主題,將本文的內容做個總結吧。

    總結

    本文我再次使用熱水器的例子實現(xiàn)了Observer設計模式,但這一次我沒有使用委托和事件,而是通過經(jīng)典的GOF方式。我同時還討論了實現(xiàn)Observer模式時Subject向Observer提供數(shù)據(jù)值可以采用的兩種方式--推模式和拉模式。最后,我們對這兩種模式進行了一個簡單的比較,并簡要介紹了.Net Framework中采用的方式。

    感謝閱讀,希望這篇文章能給你帶來幫助!

    轉載于:https://www.cnblogs.com/GeneralXU/archive/2009/09/09/1563117.html

    總結

    以上是生活随笔為你收集整理的重温Observer模式--热水器·改(转载)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。

    国产中文| 久久香蕉电影 | 一级一片免费观看 | 国产精品1区2区3区在线观看 | 激情欧美一区二区免费视频 | 在线观看视频国产一区 | 91精品对白一区国产伦 | 国产色在线观看 | 久久福利小视频 | 中文字幕av在线不卡 | 国产美腿白丝袜足在线av | 在线国产91| 91手机电影 | 91香蕉国产 | 天天综合五月天 | av电影在线观看 | 国产精品96久久久久久吹潮 | 日韩欧美视频免费观看 | 日本黄色大片免费 | 日日操日日干 | 最新色视频 | 超碰在线日韩 | 美女网站在线播放 | 久碰视频在线观看 | 九九久久在线看 | 成年美女黄网站色大片免费看 | 中文字幕在线观看完整 | 免费在线观看中文字幕 | 狠狠色丁香久久婷婷综 | 国内精品久久久 | 亚洲精品视频播放 | 国产激情久久久 | 国产无区一区二区三麻豆 | 国产一级二级视频 | 国产精品永久久久久久久久久 | 国产一区成人在线 | 中文字幕av免费在线观看 | 最新日韩在线观看 | 在线观看免费av网 | 成年人在线观看 | 96精品高清视频在线观看软件特色 | 亚洲精品视频在 | 久久国产亚洲精品 | 欧美色图亚洲图片 | 中文字幕乱码亚洲精品一区 | 成人网在线免费视频 | 国产精品免费一区二区三区 | 久久黄色影院 | 97精品国产| 久久99热精品 | 九月婷婷综合网 | 亚洲精品av中文字幕在线在线 | 成人宗合网 | 久久综合婷婷国产二区高清 | 亚洲第一伊人 | 91免费视频黄 | 中字幕视频在线永久在线观看免费 | 五月天婷婷狠狠 | 97av.com | 超碰成人网 | 久久久久久久毛片 | 91av视屏 | 最近免费观看的电影完整版 | 国产专区日韩专区 | 日韩免费视频观看 | 经典三级一区 | 狠狠色丁香婷婷综合久小说久 | 日韩激情中文字幕 | 九九在线免费视频 | 天天操天天拍 | 91九色蝌蚪视频 | 久草网站 | 九色porny真实丨国产18 | 国产成人a亚洲精品v | 久久精品一二三 | 国产成人av电影在线观看 | 天天色天天射天天干 | 亚洲成人影音 | 久久国产精品免费 | 97超碰人人澡人人爱学生 | 99久久久久久 | 精品无人国产偷自产在线 | 久久99精品国产91久久来源 | av品善网 | 手机av片 | 精品国产亚洲日本 | 日日夜夜操操操操 | 国产资源免费在线观看 | 狠狠色丁香婷婷综合基地 | 美女国产免费 | 不卡的av电影 | 日本精品视频在线观看 | 免费网站观看www在线观看 | 不卡在线一区 | 人人爽人人舔 | 免费在线观看日韩 | 日韩四虎| 成人久久视频 | 日本公妇在线观看高清 | 久草综合在线 | 免费三级av| 久久av黄色 | 91精品秘密在线观看 | v片在线看 | 日韩欧美视频一区 | 五月婷婷视频在线 | 日日躁你夜夜躁你av蜜 | 四虎8848免费高清在线观看 | 五月婷婷综合在线视频 | 国产精品 中文字幕 亚洲 欧美 | 天天爽夜夜爽人人爽曰av | 亚洲国产免费 | 午夜黄色影院 | 色香蕉在线视频 | 美女国产在线 | 天天色天天搞 | 久久国语露脸国产精品电影 | 丁香 婷婷 激情 | 欧美日韩中文字幕综合视频 | 国产视频在线观看一区 | 天天射成人 | 欧美激情va永久在线播放 | www日| 免费一级片在线观看 | 国产精品mv | 人人澡人人舔 | 欧美成人精品在线 | 狠狠干成人综合网 | 999热线在线观看 | 九色视频网站 | 国产成人综合在线观看 | av片子在线观看 | www91在线观看| bbb搡bbb爽爽爽 | 国产在线更新 | 中文区中文字幕免费看 | 国产精品嫩草55av | 五月婷婷激情综合网 | 中文字幕av有码 | 日韩在线观看视频免费 | 国产日韩欧美综合在线 | 国产免费又粗又猛又爽 | 国产精品自产拍在线观看中文 | 美女一二三区 | 在线观看视频中文字幕 | 亚洲成人一区 | 在线观看911视频 | 久久精品国产免费看久久精品 | av在线播放不卡 | 久久99精品国产 | 色噜噜噜 | 四虎在线永久免费观看 | 精品国产一区二区三区四区在线观看 | 人人网人人爽 | 亚洲国产精久久久久久久 | 色噜噜在线观看视频 | 成人午夜电影在线 | 欧美激情精品久久久久久 | 91中文字幕视频 | 久久伦理影院 | 2019中文最近的2019中文在线 | 国产高清在线永久 | 黄色毛片视频免费 | 天天综合视频在线观看 | 亚洲国内在线 | 在线国产日韩 | 国产精品大片在线观看 | 九色91福利 | 波多野结衣小视频 | 国产黄视频在线观看 | 日本性久久 | 日本精品一区二区 | 精品国产乱码久久久久久1区2匹 | 午夜av影院 | 美女一级毛片视频 | 免费在线观看91 | 亚洲综合国产精品 | 国产一级大片在线观看 | 成片人卡1卡2卡3手机免费看 | 久久免费看 | 久久国产精品免费观看 | 国产韩国日本高清视频 | 中文一区二区三区在线观看 | 久久久久久久久久亚洲精品 | 五月婷婷六月丁香 | 亚洲婷婷在线 | 一级国产视频 | 日韩mv欧美mv国产精品 | 久香蕉| 色偷偷中文字幕 | 国产91精品久久久久 | 国产精品一区免费看8c0m | 国产精品美女久久久久久 | 精品999 | 福利视频 | 天天碰天天操 | 99色在线观看| 婷婷干五月 | 99在线高清视频在线播放 | 成 人 免费 黄 色 视频 | 欧美在线资源 | 天堂在线v | av福利资源 | 亚洲91视频| 国产精品乱码一区二区视频 | 精品99在线 | 操操碰 | 久久草在线免费 | 一区二区不卡在线观看 | 免费91在线观看 | 中文字幕一区二区三区乱码在线 | 狠狠色丁香婷婷综合最新地址 | 一区二区三区四区在线 | 国产精品久久网站 | 99视频精品 | 国产成人一区二区啪在线观看 | 午夜av大片 | 日韩精品一区二区三区免费观看视频 | 精品久久久久久电影 | 国产亚洲精品久久久久秋 | 午夜久久电影网 | 日韩在线影视 | 久久视频国产精品免费视频在线 | 99精品视频在线 | 黄色在线看网站 | 久久精品黄 | 精品久久精品 | 狠狠的日| 丁香花五月 | 夜色资源网| 国产爽妇网 | 91视频这里只有精品 | 久久国产热 | 欧美日韩视频在线观看一区二区 | 人人爽人人爱 | 一色av| 五月天久久狠狠 | 9i看片成人免费看片 | 日韩av成人在线观看 | 婷婷伊人综合 | 人人搞人人爽 | 日韩中文字幕国产精品 | 精品国产一区二区三区久久久久久 | 亚洲伦理精品 | 久久精品99国产精品亚洲最刺激 | 五月婷婷丁香 | 久草视频视频在线播放 | 日韩高清免费无专码区 | 久久综合久久久 | 在线观看视频日韩 | 综合铜03| 久久极品 | 中文av不卡 | 国产成人福利在线 | 麻豆传媒视频观看 | 日韩精品一区二区三区免费观看 | av丝袜在线| 91精品久久久久久久久 | 日韩三区在线观看 | 在线成人一区 | 免费黄色网止 | 亚洲黄色app | 国产日韩av在线 | 久久视频免费在线观看 | 欧美性一级观看 | 国产三级香港三韩国三级 | 夜夜视频欧洲 | 色吊丝在线永久观看最新版本 | 黄色小视频在线观看免费 | 国产精品美女久久久久久久久 | 久久五月天综合 | 91精品久久久久久久91蜜桃 | 少妇bbb搡bbbb搡bbbb′ | 在线观看国产高清视频 | 国产精品永久久久久久久www | 手机在线观看国产精品 | 国产91免费在线观看 | 色av婷婷| 西西www444 | 国产精品区一区 | 久久亚洲专区 | 91精品国产92久久久久 | 日本爱爱免费 | 天天天干| 综合久色| 久久精品中文字幕免费mv | 欧美日韩一区二区在线 | 日韩精品一区二区在线观看 | 婷婷激情5月天 | 日韩a在线播放 | 中文av网站| 一区二区三区四区精品 | 欧美一区二区三区免费观看 | 午夜精品av | 中文字幕成人 | 久久免费播放视频 | 免费在线观看视频一区 | 国产精品免费不 | 嫩模bbw搡bbbb搡bbbb | 国产手机在线观看 | 久久在线免费视频 | 天天操天天拍 | 亚洲精品a区| 激情影音 | 97国产精品一区二区 | 亚洲2019精品| 97精品国产一二三产区 | 欧美日本国产在线观看 | 国产精品久久久久久久久毛片 | 欧美性大战 | 色综合人人 | a级国产乱理伦片在线播放 久久久久国产精品一区 | 九九九视频在线 | 91爱在线 | 久久精品在线视频 | 中文字幕在线观看第一区 | 天天搞天天干 | 精品视频在线视频 | 一区二区三区日韩在线观看 | 亚洲 欧洲av | 97国产超碰 | 91精品视频在线看 | 久色婷婷 | 欧美一区二区三区在线视频观看 | 91av在线免费观看 | 久久天天躁狠狠躁夜夜不卡公司 | av一区二区三区在线观看 | 欧美aaaxxxx做受视频 | 精品久久一二三区 | 波多野结衣电影久久 | av视屏在线播放 | 激情综合啪 | 欧美日韩xxxxx | 右手影院亚洲欧美 | 国产一区欧美日韩 | 久久精品这里都是精品 | 亚洲免费在线观看视频 | 成人三级视频 | 天天操天天舔天天爽 | 五月黄色| 国产精品国产三级国产aⅴ9色 | 国产欧美精品一区二区三区四区 | 欧亚日韩精品一区二区在线 | 久久久一本精品99久久精品66 | 欧美aaa一级 | 丰满少妇麻豆av | 亚洲涩涩涩涩涩涩 | 成人免费xyz网站 | 91亚洲国产| 97香蕉久久超级碰碰高清版 | 国产精品一区二区av日韩在线 | 国产一线在线 | 精品在线视频播放 | 91国内在线 | 99国产精品| 久久婷婷精品 | 91精品视频在线免费观看 | 在线黄网站 | av高清网站在线观看 | 成年人国产在线观看 | 亚洲精品电影在线 | 欧美成人h版 | 夜夜操夜夜干 | 四虎永久国产精品 | 色噜噜日韩精品欧美一区二区 | 91一区啪爱嗯打偷拍欧美 | a在线观看免费视频 | 亚洲精品久久久久久久不卡四虎 | 美国av片在线观看 | 精品在线一区二区三区 | 在线观看成人一级片 | 亚洲欧美日韩在线一区二区 | 欧美一区二区在线免费观看 | 久久激情视频免费观看 | 国产免费人人看 | 亚洲九九九| 91黄视频在线 | 国产福利资源 | 国产一区视频在线播放 | a视频在线观看 | 色香蕉网| 中文字幕av在线不卡 | 成人在线一区二区 | 亚洲视频专区在线 | 国内精品免费久久影院 | 丝袜护士aⅴ在线白丝护士 天天综合精品 | 精品国产福利在线 | 免费视频二区 | 91超在线 | 国产aaa免费视频 | 亚洲成a人片综合在线 | 色婷婷狠狠操 | 在线观看你懂的网址 | 午夜国产福利视频 | 麻豆视频在线 | 天天操天天爱天天干 | 97超碰国产精品女人人人爽 | 日韩啪啪小视频 | 成人欧美亚洲 | 伊人色**天天综合婷婷 | 人人爽人人插 | 亚洲精品久久久久久国 | 亚洲精品国产精品99久久 | 欧美一二区视频 | 国产护士hd高朝护士1 | 欧美日韩视频 | 免费视频黄色 | 国产精品久久久久久久久大全 | 亚洲欧美日本A∨在线观看 青青河边草观看完整版高清 | 国产精品久久久久aaaa九色 | 欧美精品你懂的 | 久久99精品久久久久蜜臀 | 丁香五月缴情综合网 | 黄色毛片视频 | 国产黄色大片免费看 | 在线看国产一区 | 久久久午夜电影 | 国产小视频在线看 | 黄色福利视频网站 | 狠狠色丁香婷婷综合久久片 | 日韩在线观看不卡 | 国产精品久久久久av福利动漫 | 天天干天天干天天干天天干天天干天天干 | 精品久久久久久久久久久久久久久久 | 国产免费久久精品 | 国色天香在线 | 日日综合| 在线黄色毛片 | 激情五月综合网 | 日韩视频在线一区 | 亚洲欧美日韩精品久久奇米一区 | 日日干天夜夜 | 中文字幕av全部资源www中文字幕在线观看 | 中文字幕国产一区 | 最新日韩视频 | 亚洲激情视频 | 免费黄色网址网站 | 黄色免费大片 | 日韩乱色精品一区二区 | 久久国产成人午夜av影院潦草 | av在线之家电影网站 | 日本久久免费电影 | 久久久黄视频 | 久久午夜电影 | 色偷偷av男人天堂 | 久久婷婷精品视频 | 日本久久中文 | 人人搞人人搞 | 久久香蕉国产 | 精品国产99国产精品 | 成人一区二区在线 | 日韩在线视频在线观看 | av中文资源在线 | 激情综合色图 | 最新不卡av | 天天操夜夜操国产精品 | 日韩精品视频免费专区在线播放 | 亚洲伊人成综合网 | 日韩欧美v | 一级欧美黄 | 99免费在线观看 | 国产福利午夜 | 国产精品a成v人在线播放 | 又爽又黄又无遮挡网站动态图 | 亚洲电影久久 | 精品一区二三区 | 亚洲国产小视频在线观看 | 国产精品成人av在线 | 国产精品免费久久久久久久久久中文 | 亚洲精选在线 | www.色综合.com| 国产手机视频 | 国产精品久久久久久久午夜片 | 中文字幕在线资源 | 麻豆久久精品 | 日韩大片免费在线观看 | 91香蕉亚洲精品 | 91精品福利在线 | 97福利视频 | 国产精品免费人成网站 | 日韩欧美在线视频一区二区三区 | 国产偷v国产偷∨精品视频 在线草 | 手机av电影在线 | 婷婷激情站| 国产精品免费视频网站 | 91av视频免费在线观看 | av激情五月 | 狠狠操天天干 | 91色视频| 日韩精品欧美一区 | 在线国产精品一区 | 天天综合网 天天 | 亚洲欧洲在线视频 | 午夜精品一区二区三区在线播放 | 日韩av中文在线观看 | 国产精品99久久久久人中文网介绍 | 黄在线| 黄网站免费久久 | 中文字幕一区二区三区久久蜜桃 | 国产精品久久久久毛片大屁完整版 | 成人免费一级片 | 91精品国产麻豆国产自产影视 | aaa免费毛片 | 四虎视频 | 麻豆一精品传二传媒短视频 | 国产丝袜一区二区三区 | 一级做a视频 | 91中文字幕永久在线 | 天天操夜夜操夜夜操 | 国产精品99页 | 91精品国产一区二区三区 | 婷婷色中文网 | 久久精品日韩 | 中文国产字幕 | 狠狠干狠狠操 | 欧美日韩视频一区二区三区 | 国产精品自产拍在线观看中文 | 夜夜躁狠狠燥 | www蜜桃视频 | 亚洲精品久久久久58 | 91最新网址在线观看 | 亚洲成人av在线电影 | 免费国产在线视频 | 久久久国产毛片 | 韩国av免费观看 | 精产嫩模国品一二三区 | 国产精品18久久久久vr手机版特色 | 日本三级不卡视频 | 波多野结衣视频网址 | 一区在线免费观看 | 国产男女无遮挡猛进猛出在线观看 | 亚洲免费av观看 | 五月天久久综合 | 天天综合网天天综合色 | 天堂av最新网址 | 中文字幕中文 | 视频在线观看入口黄最新永久免费国产 | 久久精品一区八戒影视 | 国产精品热视频 | 最近免费观看的电影完整版 | 亚洲一区久久 | 色综合国产 | av天天在线观看 | 在线免费观看的av网站 | 久久久久北条麻妃免费看 | 久草在线免费播放 | 国产馆在线播放 | 丝袜护士aⅴ在线白丝护士 天天综合精品 | a黄色影院 | 国产日产精品一区二区三区四区的观看方式 | 99在线看| 中文字幕人成一区 | 国产精品自产拍在线观看蜜 | 丁香六月av | 国产精品免费观看久久 | 狠狠狠狠狠狠天天爱 | 国产精品手机播放 | 97看片| 少妇av片| 看国产黄色大片 | 免费观看国产视频 | 久久av免费电影 | 免费合欢视频成人app | 亚洲精品乱码久久久久久9色 | 欧美日韩午夜爽爽 | 久久精品综合视频 | 久久天天躁狠狠躁夜夜不卡公司 | 色播激情五月 | 天天视频亚洲 | 日韩高清一二三区 | 亚洲成人二区 | 麻豆视频免费在线 | 男女精品久久 | 五月天天av | 日本黄色免费大片 | japanesefreesex中国少妇 | 成人一区电影 | 久久国产热 | 国产字幕av| 热久久国产精品 | 免费观看av | 狠狠躁夜夜av | 国产色综合 | 久久久久久久久久电影 | 久久精品国产免费观看 | 久久99精品久久久久久秒播蜜臀 | 免费在线观看不卡av | 亚洲成av人片在线观看香蕉 | 国产午夜三级一区二区三 | 成人在线一区二区三区 | 天天操天天摸天天干 | 人人草人人做 | 日韩在线不卡视频 | 夜夜操天天摸 | 激情欧美日韩一区二区 | 亚洲日本在线视频观看 | 中文字幕亚洲国产 | 亚洲狠狠干 | 成人中文字幕av | 欧美日韩视频一区二区 | 四虎最新入口 | 成人国产网站 | 日日狠狠 | 国产成人精品一区二区三区在线观看 | 久久婷婷综合激情 | 日韩精品一卡 | 日韩高清一区在线 | 久久99久久99精品中文字幕 | 日本三级国产 | 美女av在线免费 | 亚洲男男gaygay无套同网址 | 狠狠色丁香九九婷婷综合五月 | 亚洲无吗av | 国内精品久久久久影院一蜜桃 | 亚洲午夜精 | 日韩高清不卡一区二区三区 | 国产一级大片在线观看 | 日本3级在线观看 | 99中文在线 | 国产精品一区在线观看 | 亚洲日b视频 | 欧美国产精品久久久久久免费 | 在线观看韩国av | 久久资源总站 | 日本不卡一区二区 | 日本黄色大片免费 | 欧美日韩破处 | 成年人免费在线 | 日本最新中文字幕 | 日韩av手机在线观看 | 97视频人人 | 91片黄在线观 | 国产成人精品一区在线 | 亚洲精品乱码久久久久久高潮 | 欧美国产视频在线 | 国产一区二区在线观看视频 | 91久久国产自产拍夜夜嗨 | 婷婷精品国产欧美精品亚洲人人爽 | 一区二区欧美激情 | 亚洲国产精品资源 | 三级黄色在线 | 91九色在线视频观看 | 欧美色婷 | 久操视频在线免费看 | 国产在线观看不卡 | 成人毛片在线观看 | 91视频首页 | 久久精品国产一区二区三 | 欧美日韩一区二区三区不卡 | 国产一及片 | 久草爱视频 | 免费午夜在线视频 | 乱子伦av| 久久久久久黄色 | 欧美男女爱爱视频 | 成人中文字幕在线 | 国产一级视频免费看 | 亚洲国产中文字幕在线观看 | 看污网站 | 免费看成人片 | 午夜久久精品 | 免费成人黄色片 | 国产精品视频久久久 | 精品1区2区 | 福利一区二区 | 狠狠操天天射 | 色综合久久久久综合体 | 天天射天天色天天干 | 国产精品免费在线播放 | 在线成人观看 | 午夜手机电影 | 国产一区在线免费观看视频 | 国产精品麻 | 91.麻豆视频 | 久 久久影院| 久久精品国产亚洲精品2020 | 成人av视屏| 在线观看日韩精品 | 日韩av免费观看网站 | 在线韩国电影免费观影完整版 | 色噜噜日韩精品欧美一区二区 | 午夜视频在线观看网站 | 777久久久| av电影久久 | 在线国产中文字幕 | 免费久久网站 | 在线免费黄色 | 中文字幕国产在线 | 国产一级免费观看 | av片中文字幕| 亚洲精品午夜aaa久久久 | 中文字幕色综合网 | 深夜免费福利视频 | 一本一本久久aa综合精品 | 五月婷婷.com | 天天摸天天舔 | 欧美日韩亚洲精品在线 | 欧美激情精品久久久久久免费 | 99久久99久国产黄毛片 | 亚洲精品国偷拍自产在线观看蜜桃 | 国产成人1区| 久久精品国产精品亚洲 | 99视频 | 久久精品99久久久久久2456 | 日本91在线 | 精品国产一区二区三区日日嗨 | 亚洲激情 在线 | 91黄色影视 | 干av在线 | 美女很黄免费网站 | 国产精品久久久久永久免费观看 | 麻豆视传媒官网免费观看 | 亚洲狠狠丁香婷婷综合久久久 | 亚洲三级影院 | 国内视频一区二区 | 国产成人一区二区三区久久精品 | 人人射人人爱 | 97精品国产91久久久久久久 | 色视频成人在线观看免 | 国产精品成人一区 | 一区二区三区国产欧美 | 特级毛片在线免费观看 | 国产女人40精品一区毛片视频 | 成人在线视频免费看 | 国产一级二级三级在线观看 | 日韩理论在线视频 | www.在线观看视频 | 亚洲视频免费视频 | 97免费中文视频在线观看 | 精品视频在线看 | adn—256中文在线观看 | 91香蕉视频黄 | 一区二区三区影院 | 蜜臀av性久久久久蜜臀aⅴ四虎 | 99精品99| 精品在线免费观看 | 国产一区在线精品 | 久久激情视频免费观看 | 中文字幕av在线播放 | 久久免费a| 国产又粗又猛又黄又爽 | 911久久 | 四虎在线免费 | 久久久高清免费视频 | 成人a在线观看高清电影 | 亚洲无线视频 | 成人一级免费视频 | 一区电影 | 日韩久久久 | 国产高清成人av | 一级免费黄色 | 可以免费看av | 亚洲夜夜综合 | 成人影音av | 国产黄色精品在线 | 在线99热 | 亚洲精品国久久99热 | 精品在线视频一区二区三区 | 看黄色.com | 玖玖玖影院 | 国产一区自拍视频 | 国产真实精品久久二三区 | 久久久久 | 国产一区精品在线 | 日韩久久久久久 | 亚洲日本在线视频观看 | 激情av一区二区 | 国产精品k频道 | 中文字幕激情 | 久久人人爽人人人人片 | 欧美日韩国产在线一区 | 久草视频免费在线播放 | 久久成人久久 | 国产精品一区二区av日韩在线 | 国产精品99久久久久 | 日本最新一区二区三区 | 99国产精品免费网站 | 日韩日韩日韩日韩 | 日韩精品aaa | 欧美精品v国产精品v日韩精品 | 欧美 日韩 性 | 在线看片一区 | 国产视频不卡一区 | 国产精品系列在线 | 国产香蕉久久 | 日韩高清在线一区二区 | 高清av网站 | 亚洲精品www. | 日本精品久久久久中文字幕5 | 久久久久久国产一区二区三区 | 日韩中文字幕在线不卡 | 一本一道久久a久久综合蜜桃 | 91资源在线视频 | 精品一二三区视频 | 99久久国产免费,99久久国产免费大片 | 免费裸体视频网 | 观看免费av | 亚洲精品国产精品国 | 亚洲日本韩国一区二区 | 欧美日韩成人一区 | 97在线观看免费视频 | 四虎永久免费网站 | 四虎在线永久免费观看 | www.综合网.com | 亚洲综合在线视频 | 91成人精品一区在线播放69 | 亚洲免费资源 | 在线日本看片免费人成视久网 | 中文亚洲欧美日韩 | 日产乱码一二三区别在线 | 蜜臀av性久久久久蜜臀aⅴ流畅 | 国产在线一区二区 | 亚洲日韩精品欧美一区二区 | 婷婷深爱网 | 高清免费在线视频 | 久久亚洲综合国产精品99麻豆的功能介绍 | 久久精品免费 | 插综合网 | 日韩欧美高清一区二区 | 国产麻豆视频在线观看 | 久久久久久久国产精品影院 | 欧美精选一区二区三区 | 久久久精品二区 | 国产精品中文在线 | 色婷婷综合久久久久中文字幕1 | 欧美日韩成人一区 | 香蕉久久久久 | 精品国产一区二区三区在线观看 | 国产丝袜一区二区三区 | 久久乱码卡一卡2卡三卡四 五月婷婷久 | 日本久草电影 | 91av网址 | 欧美精选一区二区三区 | 91人人干| 天天天干天天射天天天操 | 九九九在线观看视频 | 免费看搞黄视频网站 | 91秒拍国产福利一区 | 日韩在线一二三区 | 精品一区二三区 | 综合网色 | 免费看特级毛片 | 日韩精品一区二区免费视频 | 国产成人精品亚洲a | 久久伊人精品天天 | 久久精品中文 | 国产特级毛片aaaaaaa高清 | 99高清视频有精品视频 | 午夜影院先 | 色天天综合久久久久综合片 | 欧美一级性视频 | 国产精品久久久久9999 | 国产一区免费看 | 久草视频免费在线观看 | 97精品国产97久久久久久久久久久久 | 天天干天天色2020 | 亚洲天堂社区 | 在线看成人av | av高清一区 | 亚洲精品美女在线观看播放 | 久久久国产99久久国产一 | 国产精品免费观看国产网曝瓜 | 国产精品系列在线播放 | 亚洲涩涩涩涩涩涩 | 国产精品久久艹 | 国产精品免费一区二区三区在线观看 | 又黄又刺激视频 | 91成品人影院 | 精品欧美一区二区在线观看 | 美女免费黄视频网站 | 久久专区 | 日韩在线观看免费 | 亚洲精品成人av在线 | 国产第一页在线观看 | 中文字幕色网站 | 午夜精品久久久久久 | 国产精品男女啪啪 | 亚洲日本一区二区在线 | 日韩h在线观看 | 国产精品不卡在线 | 成年人免费看片 | 日韩av在线高清 | 香蕉久久久久久av成人 | 亚洲va欧美va人人爽春色影视 | 9999在线观看 | 亚洲精品国产片 | 成人在线一区二区 | 国精产品999国精产品岳 | 中文字幕在线视频精品 | 亚洲a免费| 免费久久99精品国产婷婷六月 | 婷五月天激情 | 一级一片免费观看 | 久久手机精品视频 | 色无五月| 亚洲婷婷综合色高清在线 | 国产男女免费完整视频 | 日日夜夜综合网 | 国产专区一| 久久激情婷婷 | 亚洲国产黄色片 | 日韩欧美在线免费观看 | 日韩网站在线观看 | 婷婷六月色 | 国产精品嫩草影院123 | 国产在线色 | 一区二区欧美在线观看 | 五月丁色 | 97人人模人人爽人人喊中文字 | 少妇视频在线播放 | 精品毛片一区二区免费看 | 成人免费共享视频 | 中文字幕精品在线 | 伊人网av | 在线免费观看成人 | 97色在线观看免费视频 | 欧美一区二区日韩一区二区 | 五月天婷亚洲天综合网鲁鲁鲁 | 色视频在线免费 | 国产黄色片免费 | 国产中文字幕视频在线观看 | 天天综合婷婷 | 91在线最新| 日韩视频区| 国产精品一区二区免费看 | 国产精品久久久久久久久久久免费看 | 一区二区免费不卡在线 | 亚洲黄色成人 | 日韩精品aaa | 91综合久久一区二区 | 97国产情侣爱久久免费观看 | 久久精品欧美日韩精品 | 日本爽妇网| 国产一级视屏 | 免费观看性生活大片3 | 成人在线免费av | 国产一区免费看 | 欧美成人精品欧美一级乱黄 | 久久久精选 | 久久一级片 | 国产一级黄大片 | 日日碰狠狠添天天爽超碰97久久 | 狠狠躁天天躁综合网 | 在线观看av大片 | 免费精品久久久 | 欧美午夜a| 99亚洲精品在线 | 一区二区三区高清 | 在线观看日本韩国电影 | 美女久久 | 亚洲手机av | 日韩av视屏在线观看 | 激情六月婷婷久久 | 99视频免费看| 五月婷网 | 精品毛片一区二区免费看 | 精品在线观看一区二区三区 | a级片韩国 | 日韩精品中文字幕av | 久青草视频在线观看 | 丝袜护士aⅴ在线白丝护士 天天综合精品 | 国产亚洲在线视频 | 伊人激情网 | 亚洲日本国产精品 | 最新国产中文字幕 | 麻豆传媒视频观看 | 开心激情久久 | 免费毛片一区二区三区久久久 | 天堂va在线高清一区 | 91九色成人蝌蚪首页 | 国产精品1区2区在线观看 | 亚洲精品在线免费观看视频 | 天天操 夜夜操 | 国产一区二区三区视频在线 | 成人午夜黄色 | 色久av| 亚洲欧美精品一区二区 | 激情久久网 | 日韩理论在线观看 | 亚洲老妇xxxxxx | 欧美一级免费高清 | 亚洲天堂网在线视频 | 亚洲精品国产高清 | 麻豆果冻剧传媒在线播放 | 国产精品99久久久久久人免费 | 精品久久一 | www.久久99 | 99久久久国产免费 | 欧美欧美 | 91精品国产综合久久福利 | 射射射av | 成人影视免费看 | 在线观看成人av | 成人免费看片98欧美 | 国产不卡av在线播放 | 美女久久精品 | 国产手机视频在线观看 | 久久婷婷一区 |