国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频

嵌入式模塊化編程—— 層次框架初探

共 5354字,需瀏覽 11分鐘

 ·

2020-12-30 18:01

【說(shuō)在前面的話(huà)】


在本系列的前面幾篇文章中,我們依次討論了如下的幾個(gè)問(wèn)題:


  如果你錯(cuò)過(guò)了上述內(nèi)容,可以單擊破折號(hào)后面的關(guān)鍵字跳轉(zhuǎn)到對(duì)應(yīng)的文章進(jìn)行閱讀。正如你所看到的,這一系列問(wèn)題實(shí)際上也正是沿著一個(gè)常見(jiàn)的思維過(guò)程展開(kāi)的。一般來(lái)說(shuō),當(dāng)我們學(xué)習(xí)過(guò)Service模型后,就有能力制作出一個(gè)個(gè)積木,并將這些積木在各種不同的項(xiàng)目環(huán)境中使用起來(lái)——我們可以這么理解:

  • 模塊的內(nèi)部不僅對(duì)外是不可見(jiàn)的,本質(zhì)上也不依賴(lài)于模塊的外部環(huán)境;

  • 模塊的內(nèi)部可以被認(rèn)為是一個(gè)獨(dú)立的小世界:

    • 一方面根據(jù)事先約定的有限的接口通過(guò)接口頭文件與外界交互;

    • 一方面通過(guò)配置頭文件(app_cfg.h)從外界接收“范圍可控”的配置信息;

    • 既然是獨(dú)立的小世界,無(wú)論外部的工程環(huán)境如何,模塊本身都可以正常的編譯或者參加鏈接——換句話(huà)說(shuō),通過(guò)拷貝模塊目錄的方式應(yīng)該就算是帶上了模塊的全部家當(dāng);


這種獨(dú)立屬性,給了Service模型構(gòu)建出的模塊以絕佳的適應(yīng)力——是一個(gè)合格的積木——甚至把它們放在一起的時(shí)候,還能很自然的形成類(lèi)似“接水管”一樣的效果,可謂“團(tuán)戰(zhàn)”、“Solo”都很拿手。

在前面的文章中,我們已經(jīng)簡(jiǎn)單介紹過(guò)用Service模型進(jìn)行“套娃”的方法,實(shí)際上,這只是準(zhǔn)備工作——所謂的“套娃”,更專(zhuān)業(yè)的說(shuō)法應(yīng)該是“層次框架”,或者說(shuō) Framework。Software Framework 是一個(gè)很大的話(huà)題,《真刀真槍模塊化》系列從入門(mén)開(kāi)始,嘗試由淺入深的為您介紹那些構(gòu)建自己的軟件大廈所必不可少的基本技能。

萬(wàn)丈高樓平地起,讓我們先從層次框架“初探”開(kāi)始吧。


【從平面到立體的轉(zhuǎn)變】


在學(xué)習(xí)了Service模型后,也許你很快就能制作或者說(shuō)封裝出一些常見(jiàn)的小模塊,比如隊(duì)列、內(nèi)存池、加密模塊、數(shù)據(jù)校驗(yàn)?zāi)K等等。這些模塊自成一體,平時(shí)用起來(lái)就好比是平鋪在桌面上的積木一樣——它們平起平坐,缺乏立體的層次關(guān)系。
還有另外一類(lèi)模塊,他們本身需要由眾多的子模塊拼接而成——這里的拼接可不是簡(jiǎn)單的平面拼接——它需要一個(gè)層次關(guān)系,這種層次關(guān)系體現(xiàn)在兩個(gè)方面:
  • 它們是如何組裝在一起的

  • 它們之間的領(lǐng)導(dǎo)和被領(lǐng)導(dǎo)關(guān)系是怎樣的。


對(duì)于第一個(gè)問(wèn)題,可以打個(gè)比方:

  • 我家倉(cāng)庫(kù)里有很多書(shū),這些書(shū)最初是雜亂的堆積在地上,查找書(shū)籍非常痛苦。
  • 我先找來(lái)幾個(gè)盒子,把同類(lèi)書(shū)籍都放在相同的盒子里。此時(shí),盒子上就可以貼上標(biāo)簽,比如,編程類(lèi)圖書(shū)、小說(shuō)、廚藝書(shū)籍、雜志等等(當(dāng)然分類(lèi)可以更細(xì));
  • 接下來(lái),我又找來(lái)更大的箱子,貼上標(biāo)簽:工作類(lèi)的書(shū)籍、休閑類(lèi)的書(shū)籍、要收藏的書(shū)籍、要捐獻(xiàn)的書(shū)籍等等。然后把之前的幾個(gè)紙盒子按照這些屬性放置到大箱子里。
  • 最后,我給倉(cāng)庫(kù)貼了一個(gè)標(biāo)簽:傻孩子的私人藏書(shū)。如果家里來(lái)了同樣是書(shū)蟲(chóng)的客人,便會(huì)不無(wú)炫耀的帶著他們參觀一番。

這種按照功能或者某種功能原則對(duì)內(nèi)容進(jìn)行歸類(lèi),并套娃式的封裝的行為,跟我們進(jìn)行層次化封裝時(shí)候所做的事情是一樣的。如你所見(jiàn),如何分類(lèi)、遵循怎樣的原則是一個(gè)非常主觀的事情,可以非常確定的說(shuō),這里沒(méi)有永遠(yuǎn)正確的方法和標(biāo)準(zhǔn),只有不同人基于自己能力、閱歷、經(jīng)驗(yàn)以及項(xiàng)目的不同要求而做出的判斷——很多時(shí)候,評(píng)論他人的模塊封裝如何的不好,基本上就等于評(píng)論他人的能力或者品味——是引戰(zhàn)的代名詞。


本文也許會(huì)不小心介紹一些所謂的“劃分原則”,這里首先約定一下,無(wú)論我說(shuō)的如何“言之鑿鑿”、仿佛是“普世真理”一般,請(qǐng)相信我,這仍然只是基于我個(gè)人的主觀看法——并不具有任何客觀性(這也是為什么我一再?gòu)?qiáng)調(diào)“計(jì)算機(jī)科學(xué)是唯心”的這一說(shuō)法的原因)?;谶@樣的約定,如果你對(duì)我的所謂“劃分原則”有什么腹誹,還請(qǐng)多多見(jiàn)諒,請(qǐng)記住這句話(huà):這里不存在什么“我是對(duì)的你就是錯(cuò)的”之類(lèi)的問(wèn)題——如果你堅(jiān)持,那么結(jié)論就是“我是錯(cuò)的,你是對(duì)的”——結(jié)案了。


原本平鋪在地上的書(shū)被立體的堆積了起來(lái),這就是層次框架;而堆積過(guò)程中的指導(dǎo)原則就是整個(gè)框架的設(shè)計(jì)理念——記住,混亂的理念也是理念;前后矛盾的理念也是理念——只要你把書(shū)堆起來(lái)了,就有一個(gè)理念,哪怕你說(shuō),“我沒(méi)想那么多,也就是看到空盒子就裝起來(lái)”——不好意思,這也是你的理念。


對(duì)應(yīng)到軟件框架上,我們可以看到,實(shí)踐中有大量理念混亂復(fù)雜的系統(tǒng),仍然運(yùn)行的非常好,只不過(guò)人們親切的稱(chēng)呼他們?yōu)?strong>祖?zhèn)魇荷剑?/span>然后默默的敬而遠(yuǎn)之。


一個(gè)原作者離職就散架了運(yùn)作良好的著名屎山城堡

(圖片來(lái)自網(wǎng)絡(luò),侵刪)

實(shí)際上,1)設(shè)計(jì)理念統(tǒng)一、2)簡(jiǎn)潔3)可執(zhí)行4)執(zhí)行力充分是每一個(gè)好框架在設(shè)計(jì)之初都曾設(shè)立過(guò)的美好夢(mèng)想——可惜最終基本上沒(méi)有誰(shuí)完全實(shí)現(xiàn)這一愿景——如果每一項(xiàng)都用5星來(lái)衡量的話(huà),對(duì)一個(gè)項(xiàng)目來(lái)說(shuō),平均下來(lái)這里列舉的每一個(gè)目標(biāo)都達(dá)到3星就是一個(gè)很好很好的軟件框架了。


【模塊化的膠水——錨點(diǎn)(Anchor Point)】

有些人看到這里會(huì)不耐煩了,說(shuō)“別整這么多虛頭八腦的東西,你就說(shuō)要把模塊堆起來(lái)不能平鋪不得了,而且具體怎么堆起來(lái),我愛(ài)怎么堆就怎么堆,對(duì)不對(duì)?”
對(duì)!Exactly!


下面我們就來(lái)整點(diǎn)實(shí)在的。既然模塊是磚頭,用磚頭砌房子就要水泥(或者說(shuō)粘合劑),那么這里的水泥是什么呢?我們知道,模塊之間相互引用主要是依靠“#include”來(lái)完成的。在Service模型中,我們強(qiáng)調(diào)過(guò)盡可能使用“相對(duì)路徑”來(lái)描述文件之間的包含關(guān)系。那么問(wèn)題立即就來(lái)了,既然是相對(duì)路徑,那么相對(duì)的是誰(shuí)呢?這里提到的“誰(shuí)”其實(shí)有一個(gè)更形象的名字——錨點(diǎn)(Anchro Point)當(dāng)我們使用“#include”進(jìn)行文件包含的時(shí)候,實(shí)際涉及到的細(xì)節(jié)比我們想想的要多得多:

  • #include 本質(zhì)上就是將指定的文件直接“包含”到當(dāng)前的文件中,這一工作在預(yù)編譯階段完成——當(dāng)進(jìn)入編譯階段時(shí),已經(jīng)看不到任何#include了;

  • C編譯器支持多個(gè)錨點(diǎn),用戶(hù)可以通過(guò)命令行 "-I<路徑>"的方式添加一個(gè)新的錨點(diǎn)(或者通過(guò)IDE用戶(hù)界面的方式來(lái)輔助添加);

  • 每一個(gè)#include?都有一個(gè)默認(rèn)錨點(diǎn),也就是#include所在文件的當(dāng)前目錄

  • 對(duì)于每一個(gè) "#include",編譯器會(huì)按照一定的順序嘗試多個(gè)錨點(diǎn)——去看看,按照以某個(gè)錨點(diǎn)為基準(zhǔn)的相對(duì)路徑能不能找到對(duì)應(yīng)的文件:如果找得到,則大功告成,找不到則再試試別的錨點(diǎn)。我們常說(shuō)的?#include <> 和 include "" 的區(qū)別就是編譯器嘗試錨點(diǎn)的順序區(qū)別,其中:

    • 使用<>?表示編譯器會(huì)首先從用戶(hù)指定的錨點(diǎn)去查找路徑,找不到了再去找默認(rèn)錨點(diǎn)(也就是當(dāng)前目錄);

    • 使用"" 表示編譯器會(huì)首先嘗試默認(rèn)錨點(diǎn),找不到了再去嘗試用戶(hù)指定的錨點(diǎn);


基于上述事實(shí),我們可以規(guī)定:

  • 在一個(gè)層次框架模型中,只允許使用相對(duì)路徑來(lái)進(jìn)行模塊間的引用

  • 除了默認(rèn)錨點(diǎn)外,一個(gè)層次框架中,應(yīng)該包含一個(gè)指向模塊頂層模塊目錄的錨點(diǎn)——我們稱(chēng)之為根錨點(diǎn)。

  • 當(dāng)一個(gè)模塊明確知道自己所引用的目標(biāo)模塊(或者頭文件)相對(duì)自己的位置在未來(lái)是不太可能會(huì)變化時(shí),推薦使用默認(rèn)錨點(diǎn)——也就是以#include所在文件自己為錨點(diǎn)來(lái)描述相對(duì)路徑;

  • 當(dāng)一個(gè)模塊明確知道自己與目標(biāo)模塊的相對(duì)位置在未來(lái)是很可能會(huì)變化的;但目標(biāo)模塊相對(duì)根錨點(diǎn)的位置卻不太可能會(huì)變化時(shí),推薦使用根錨點(diǎn)來(lái)描述相對(duì)路徑;

  • 在某些極端(且應(yīng)該極力避免)的情況下,一個(gè)模塊完全不能確定目標(biāo)模塊的位置會(huì)如何變化——也就是即不知道相對(duì)自己會(huì)怎么變化,也不知道目標(biāo)模塊相對(duì)根錨點(diǎn)會(huì)如何變化——此時(shí),應(yīng)該直接#include 目標(biāo)文件名,而不包含任何路徑信息。這樣做的目的本質(zhì)上就是甩鍋給用戶(hù)——請(qǐng)“您”在工程配置里為這個(gè)“只有您會(huì)知道會(huì)放在那里”的目標(biāo)模塊配置一個(gè)錨點(diǎn)。我們把這種錨點(diǎn)叫做用戶(hù)錨點(diǎn)。這里,我們人為規(guī)定應(yīng)該避免用戶(hù)錨點(diǎn)的使用——需要注意的是,這里沒(méi)有任何客觀的關(guān)于對(duì)錯(cuò)的判斷,請(qǐng)避免不必要的對(duì)錯(cuò)性爭(zhēng)論。


關(guān)于錨點(diǎn)說(shuō)了這么多,那么實(shí)踐中它有什么立馬看得到的好處呢?我們不妨舉個(gè)例子:

這是一個(gè)使用service模型進(jìn)行“套娃”的文件包含示意圖。根據(jù)之前所學(xué)的知識(shí)容易發(fā)現(xiàn):每個(gè)模塊對(duì)外界來(lái)說(shuō)唯一可見(jiàn)的部分就只有它的接口頭文件?;谶@一事實(shí),在描述龐大的層次結(jié)構(gòu)時(shí),我們就可以偷個(gè)懶——省略掉上圖中的各種字面意義的“條條框框”——簡(jiǎn)單直接地就用一個(gè)頭文件直接指代一個(gè)模塊。于是,哪怕一個(gè)相對(duì)復(fù)雜的層次結(jié)構(gòu),也可以使用下圖來(lái)輕松表示:

在介紹service模型的文章末尾,我們指出了一個(gè)令人頭疼的問(wèn)題:即,如果每個(gè)模塊都有一個(gè)app_cfg.h,那么層次結(jié)構(gòu)下往往會(huì)有一串的“app_cfg.h”。這一問(wèn)題在IDE環(huán)境下進(jìn)行頭文件包含路徑展開(kāi)時(shí)尤為突出——簡(jiǎn)直到了不能容忍的地步——廣大service模型愛(ài)好者親切的稱(chēng)之為“app_cfg.h的鬼畜”。借助錨點(diǎn),我們就能輕松的解決這一問(wèn)題,思路如下:

  • 每一個(gè)擁有復(fù)雜縱深的大模塊在最頂層,根據(jù)模塊的名稱(chēng)建立一個(gè)唯一的配置頭文件 "<模塊名稱(chēng)>_cfg.h";

  • 刪除所有子模塊自己的 app_cfg.h;

  • 由于該配置頭文件相對(duì)模塊頂層目錄的位置是固定的,因此大模塊內(nèi)所有的文件都以相對(duì)根錨點(diǎn)描述的相對(duì)路徑來(lái)包含"<模塊名稱(chēng)>_cfg.h"


具體情況如下圖所示(注意,為了美觀,這里把每個(gè)子模塊對(duì)"<模塊名稱(chēng)>_cfg.h"的#include箭頭都省略了):



這就是Service層次模型下利用根錨點(diǎn)來(lái)解決 app_cfg.h 污染的解決方案。

【模塊間調(diào)用/引用規(guī)約】


在前面的章節(jié)中,我們說(shuō)模塊間的層次關(guān)系包含兩個(gè)方面的內(nèi)容:

  • 它們是如何組裝在一起的;

  • 它們之間的領(lǐng)導(dǎo)和被領(lǐng)導(dǎo)關(guān)系是怎樣的。


其中,模塊間的領(lǐng)導(dǎo)與被領(lǐng)導(dǎo)關(guān)系與現(xiàn)實(shí)中的公司內(nèi)部結(jié)構(gòu)非常類(lèi)似,表現(xiàn)為部門(mén)間的協(xié)作原則也可以被“直接”拿過(guò)來(lái)用于指導(dǎo)模塊間的協(xié)作關(guān)系。下面,我就為大家介紹三條關(guān)鍵的基本原則:

  • 跨部門(mén)(必須)調(diào)老大原則;

  • 同部門(mén)(至少)平級(jí)調(diào)用原則;

以及

  • 領(lǐng)導(dǎo)避諱原則。



跨部門(mén)(必須)調(diào)用老大原則


該原則是說(shuō):如果一個(gè)模塊內(nèi)的文件(無(wú)論是.c還是.h)想包含一個(gè)模塊,而該模塊在另外一個(gè)跟當(dāng)前模塊完全沒(méi)有隸屬關(guān)系的大模塊內(nèi)部,則,我們“只允許” 通過(guò)包含那個(gè)大模塊的最頂層接口頭文件(也就是它們的老大)來(lái)實(shí)現(xiàn)模塊間的引用。一個(gè)具體的例子如下圖所示:


在這一圖中,左邊方框所表示的模塊嘗試去包含右邊大部門(mén)內(nèi)的一個(gè)子模塊(橙色虛線(xiàn)所示),根據(jù)“調(diào)老大”原則,我們不能繞開(kāi)“隔壁部門(mén)”的老大而去直接給它的小弟布置任務(wù)。


同部門(mén)(至少)平級(jí)調(diào)用原則


與跨部門(mén)的情況相對(duì),如果我們想引用的模塊與自己屬于同一個(gè)大部門(mén),而只是在組織架構(gòu)的不同分支上,我們起碼應(yīng)該進(jìn)行“平級(jí)”調(diào)用,即,如果目標(biāo)模塊比我們的層級(jí)更低,我們“起碼”要找他的跟我們同一級(jí)別的領(lǐng)導(dǎo)來(lái)“對(duì)等交流”。具體如下圖所示:


在圖中,左邊方框中的模塊與右邊它想包含的模塊同屬于一個(gè)大部門(mén)。由于“平級(jí)調(diào)用”原則的限制,我們同樣不能繞開(kāi)隔壁團(tuán)隊(duì)的領(lǐng)導(dǎo)而去直接招呼人家的小弟。


領(lǐng)導(dǎo)避諱原則


其實(shí)在上一條原則中,我們使用了“起碼”這一限制性的字眼,其實(shí)是因?yàn)椋?strong>在同部門(mén)中也應(yīng)該盡可能“調(diào)老大”,然而,為了避免“循環(huán)包含”的問(wèn)題,我們只針對(duì)接口頭文件(這條規(guī)則不限制.c)引入了一個(gè)專(zhuān)門(mén)的“領(lǐng)導(dǎo)避諱原則”——簡(jiǎn)單說(shuō)就是:
  • 對(duì)一個(gè)接口頭文件來(lái)說(shuō),無(wú)論如何都不能直接或者間接的包含自己的“領(lǐng)導(dǎo)”;

  • 在這一前提基礎(chǔ)上,我們應(yīng)該盡可能也去“調(diào)老大”——哪怕隸屬于同一大模塊。


一個(gè)具體的例子如下圖所示:




在途中,一個(gè)模塊的接口頭文件試圖去包含隔壁部門(mén)的小弟,考慮到“盡快可能掉老大”的要求,以及“避諱領(lǐng)導(dǎo)”的限制,圖中就有了兩條可行的包含方案(以藍(lán)色箭頭表示)——實(shí)際上,選擇最大的有效領(lǐng)導(dǎo)(也就是斜向上的藍(lán)色箭頭所示的頭文件)才是我們所推薦的。


其實(shí),如果你理解了上述三條原則,你很快就會(huì)發(fā)現(xiàn)一句更為凝練的口訣,即:避開(kāi)自己的領(lǐng)導(dǎo),盡可能調(diào)老大,完畢。


【不是結(jié)束的后記】


閱讀本文以后,你可能會(huì)驚奇于為啥模塊的層次模型與實(shí)際生活有那么多“驚人的相似”,其實(shí),這是你本末倒置的結(jié)果——模塊的層次模型本來(lái)就是以生活中的經(jīng)驗(yàn)為靈感和原型引入工程實(shí)踐中的——既然要解決的問(wèn)題類(lèi)似,借鑒已有的方案當(dāng)然是最方便的了。在計(jì)算機(jī)科學(xué)中,這類(lèi)現(xiàn)象可謂遍地都是。所以說(shuō),我們不應(yīng)該光盯著高大上的技術(shù)和名詞去”學(xué)習(xí)“和”自我提升“,更要清晰的記得:
  • 計(jì)算機(jī)技術(shù)是“唯心的”,只不過(guò),誰(shuí)的話(huà)語(yǔ)權(quán)強(qiáng)大,誰(shuí)說(shuō)了算;

  • 除了少數(shù)與數(shù)學(xué)、物理、經(jīng)濟(jì)學(xué)(分配資源相關(guān)的知識(shí))有關(guān)的硬核理論外,更多的計(jì)算機(jī)技術(shù)和術(shù)語(yǔ)都是像你我這樣普普通的一線(xiàn)程序員從生活中借鑒而來(lái)的——所以說(shuō),加油吧,打工人。


原創(chuàng)不易,

如果你喜歡我的思維、覺(jué)得我的文章對(duì)你有所啟發(fā),

請(qǐng)務(wù)必 “點(diǎn)贊、收藏、轉(zhuǎn)發(fā)” 三連,這對(duì)我很重要!謝謝!


歡迎訂閱 裸機(jī)思維


瀏覽 63
點(diǎn)贊
評(píng)論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)
評(píng)論
圖片
表情
推薦
點(diǎn)贊
評(píng)論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)

感谢您访问我们的网站,您可能还对以下资源感兴趣:

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 亚洲人人爱| 日韩AAA在线| 亚洲乱伦图| 怡春院成人| 高清无码片| A国产| 正在播放李彩斐被洋老外| 天天爽夜夜爽夜夜爽精品| 97超碰在线免费观看| 蜜臀网在线观看| 国产午夜福利在线| 婷婷五月激情中文字幕| 996re| 国产精品视频久久| 国产无码AV成在线| 青草久久久| AV黄色网| 免费看欧美成人A片无码| 男女啪啪啪网站| 河南少妇搡BBBB搡BBBB| 欧美精品久久久久久久久| 日皮视频免费| 97免费在线观看视频| 91免费看| 无码专区亚洲| 青青草手机视频| 少妇搡BBBB搡BBB搡毛片少妇| 国产午夜无码福利视频| 韩日av| av女人天堂| www.91熊猫成人网| 夜夜骚精品人妻av一区| 久久久久久久久久成人永久免费视频 | 噜噜噜网| 亚洲色欲色欲www在线成人网| AV大全在线免费观看| 成人激情五月天| 亚洲无码高清免费| 色五月激情五月| 九色PORNY国产成人| 国产无码免费| 亚洲A片V一区二区三区| 成人国产| 国产午夜在线观看| AAA片视频| www.俺去也| 高清无码在线免费观看视频| 欧美三级长视频| 精品欧美一区二区三区久久久| 亚洲一级av无码毛片精品| 北条麻妃在线观看| 精品秘一区性综合三区| 日韩va| 中文字幕在线播放视频| 五月天久久久久久| 中文无码日本一级A片久久影视| 一卡二卡三卡无码| 另类AV| 91无码人妻一区二区| 无码人妻精品一区二区50| 天天肏屄| 欧美人成人无码| 国产精品天天AVJ精麻传媒| 亚洲特级毛片| 蜜臀av网站| 17.3c一起起草| 蜜桃91精品入口| 日本免费福利视频| 成人精品午夜无码免费| 中文字幕黄色| 久久综合成人| 尤物无码| 国产精品高潮呻吟久久| 亚洲欧美日韩在线| 五月婷婷丁香六月| 777.av| 超碰P| 99在线免费观看| 91久久免费视频| 国产精品一区二区AV日韩在线| 国产成人午夜| 国产迷奸视频| 亚洲黄色小电影| 黄色视频| 色色资源网| 婷婷国产成人精品视频| 午夜福利av在线| 91探花视频精选在线播放| 中文字幕乱码中文乱码91| 成人久久AV| 日本乱伦视频| 9797色色| 香蕉视频啪啪啪| 美日韩在线观看| 俺去啦在线| 69人妻人人澡人人爽久久| 久久g热| 精久久久| 澳门毛片| 色欲熟妇| 在线免费AV片| 天堂资源在线| 丰满人妻一区二区三区蜜桃视频| 97人人干人人| 亚洲成人性爱在线| 黄色毛片网站| 99久久久久久久| 大香蕉综合视频| 国产嫩草影院| 午夜福利不卡视频| 亚洲性爱中文字幕| 玖玖资源站中文字幕| 男女啪啪啪网站| 麻豆videos| 亚州成熟少妇视频在线观看| 国产成人精品二三区麻豆| 黄色无码视频在线观看| A视频免费在线观看| 尤物视频在线播放| 午夜黄色影院| 三级午夜在线无码| 99国产免费视频| 国产成人在线精品| 九色视频在线观看| www欧美| 这里只有精品久久| 天堂网av2014| 亚洲免费av在线| 欧美一区二区三区激情| www99热| 欧美一级黄色A片| 少妇bbb| 国产黄片一区二区三区| 怡红院在线观看| 俺去搞| 天堂精品| 午夜成人在线观看| 偷拍777| 少妇搡BBBB搡BBB搡AA| 国产无码做爱视频| 操逼网站在线| 成人AV在线电影| 亚洲日韩一区二区| 少妇在线| 丰满岳乱妇一区二区三区| 国产高清免费无码| 日韩三级在线播放| 亚洲永久天堂| 久久成人久久| 亚洲色777| 夜夜骚AV一二三区无码| 亚洲骚货| 乱伦视频网站| 国产精品国产精品国产专区| 亚洲中文字幕在线看| 亚洲日韩欧美中在线| 日本熟妇无码一区二区| 青草久久久久| 欧美激情中文字幕| 午夜福利电影无码| 无码人妻日本| 欧美撒色逼撒| 91无码精品久久久一区第1集| 国产秘久久一区二区| 一本色道久久综合无码人妻| 怡红院综合网| 天天爱天天爽| 求欧美精品网址| 老太婆擦BBBB撩BBBB| 天天干,夜夜爽| 骚骚肥肥一区二区三区| 国产在线视频第一页| 中文字幕婷婷| 国产一区二区三区免费| 99热最新在线| 日韩无码AV一区二区| 超碰人人妻| 国产高清无码免费在线观看| 国产乱伦影片| 成人手机AV| 免费黄色A片| 99久视频| 日本黄色大片| 成人天堂| 国产乱子伦一区二区三精品| 国产一级a爱做片免费☆观看| 去干网欧美| 真实国产乱子伦毛片| 久草超碰在线| 日韩午夜剧场| 91色婷婷综合久久中文字幕二区| 欧美性爱免费网站| 五月丁香激情视频| www香蕉成人片com| 香蕉久草| 伊人大香蕉在线视频| 露脸丨91丨九色露脸| 中文字幕一区在线观看| 大香蕉国产视频| 强开小嫩苞一区二区三区视频| 深爱激情五月天| 青娱乐极品久久| 老师机性爱视频在线播放| 2015中文字幕黄色视频| 艾操网| 精品国产乱码久久久久夜深人妻| 亚洲A网站| 按摩性高湖婬AAA片A片中国 | 亚洲特级毛片| 免费看v片| 婷婷色小说| 91精品综合| 黄色片免费在线观看| 黄片免费大全| 91大神在线免费看| 毛片av在线| 国产高清激情| 99久久大香蕉| 尤物yw| 欧美日韩不卡视频| 久久免费国产视频| 激情综合五月| 人人草人人草| 国产午夜激情| 999精品视频在线| JIZZJIZZ国产精品喷水| 欧美试看| 91欧美性爱| 天天干天天日天天射| 99久久婷婷国产综合| 动漫啪啪视频| 一二三区免费视频| 四季AV综合网站| 蜜桃Av噜噜一区二区| 中文无码在线播放| www.zaixianshipin| AV在线播放中文字幕| 狠狠撸天天操| 天天操夜夜爱| 日韩美女操逼| 欧美成人无码A片免费| 91成人免费视频| 中文无码人妻少妇| 午夜福利2025| 欧美三区四区| 国产成人综合在线| av网站免费看| 蜜臀一区二区三区| 高清无码在线视频| 无码精品人妻一区二区欧美| 国产精品乱伦片| 欧美色视频一区二区三区在线观看| 色拍拍视频| 天天干天天看| 日韩视频播放在线综合| 国产婬片一级A片AAA毛片AⅤ | 日日摸日日碰| 蜜桃91精品秘入口| 色婷婷五月激情| 超清无码在线| 三级片网站在线播放| 精品不卡| 美日韩视频欧美一区二区视频| 国产一区2区| 蜜桃av无码一区三区| 国产aⅴ激情无码久久久无码| 成人毛片在线观看| 欧洲三级片网站| 91红桃视频| 黑人巨粗进入疼哭A片| 尻屄网| 韩日一级17c| 成人动漫免费观看| 人妻AV无码| 久久午夜无码鲁丝片午夜精| 韩国精品久久久| 91官网在线观看| 老司机视频在线视频18| 熟妇在线观看| 成人三级AV在线| 97人妻人人| 亚洲性天堂| 超碰在线观看97| 久久精品国产AV一区二区三区 | 亚洲无码av在线观看| 一级特黄大片色| 国产视频福利| 亚洲小骚逼| 黄片无码免费观看| 日韩乱伦视频| 一区二区三区三级片| 一插菊花综合| 国产精品成人免费精品自在线观看| 亚洲综合免费观看高清完整版在线| 97色吧| 国产Aⅴ| 亚洲精品电影| 午夜无码鲁丝片午夜精品一区二区 | 久久久精品淫秽色情| 欧美a片在线观看| 日韩人妻一区二区| 人妖和人妖互交性XXXX视频| 操人视频在线观看| 色婷婷无码| 99热黄色| 国产在线视频一区二区三区| 亚洲色图15P| 欧美色图1| 在线亚洲欧美| 91乱子伦国产乱子伦无码| 免费在线观看内射| 黄色视频在线观看国产| 中文字幕久久播放| 日本视频免费| 人妻p| 久草a视频| 国产欧美日韩一区二区三区| 69视频在线观看| AV在线资源观看| 亚洲成av人无码| 欧美爆操视频| 十八女人高潮A片免费| 免费一二区| 欧美男女交配视频| 国产三级国产三级国产| 97男人的天堂| 亚洲秘av无码一区二区| 波多野42部无码喷潮更新时间| 黄色av网站在线观看| 超碰一级片| 成人国产片女人爽到高潮| 亚洲午夜精品成人毛片| 亚洲色诱| 久综合网| 五月综合久久| 国产乱子伦一区二区三区视频| 日韩美女操逼| 加勒比在线视频| 亚洲精品午夜| 嫩草在线观看| 性生活无码视频| 无码国产精品一区二区免费96| AV高清无码在线观看| 亚洲精品成人视频| 狠狠撸狠狠撸| 国产精品欧美一区二区三区苍井空 | 六月婷婷五月丁香| 狠狠躁日日躁夜夜躁A片男男视频| 亚洲高清视频在线| 精品日韩中文字幕| 中文字幕第一区| 亚洲色啪| 草视频| 成人毛片一区二区三区无码| 99综合在线| 大鸡吧草逼| 国产精品久久久久久久久久九秃| 999热这里只有精品| 日韩性爱视频在线观看| 久久久久久一区| 亚洲无码专区在线观看| 中文字幕无码A片久久| 黄色成人网站在线观看免费| 欧美一级无码| 精品国产区| 国产伦精品一区二区三区色大师 | 蜜桃av无码一区二区三区| 九九九九九九国产| 亚洲性爱一级片| 正在播放无码| 黄色成人网站免费在线观看| 五月一区| 久久亚洲成人| 人人看,人人摸| 日韩一区二区视频| 国产激情在线| AV天堂影视在线观看| 欧美成人在线视频网站| 91亚色视频| 天堂操逼| 国产美女免费视频| 国产成人三级| 欧美激情区| 大香蕉伊人在线手机网| 国产AV日韩AV| 一区二区三区麻豆| 婷婷99狠狠躁天天躁| 午夜成人网站在线观看| www.91av| 日本无码在线视频| 成人三级片视频| 操逼大香蕉| 天天日天天| www久久| 成人国产在线无码AV免费| 久久影院三级片| 国产成人精品无码免费| 国产精品每日更新| 天天躁狠狠躁夜躁2024| 天天爽天天摸| 日韩AV无码网站| 久久成人网站| 久久视频免费在线观看| 伊人久久福利视频| 亚洲中文字幕免费视频| 日本有码中文字幕| 波多野结衣无码高清| 69AV视频在线观看| 男人的天堂婷婷| 东京热综合网| 国产网址| 成人做爱黄片| 亚洲AV无码专区一级婬片毛片| 一道本无码在线观看| 久久久女女女女999久久| 黄页网站免费在线观看| 国产白丝视频| 中文无码日本高潮喷水| 久草中文视频| 色色影音先锋| 级婬片AAAAAAA免费| 高清国产AV| 老婆被黑人杂交呻吟视频| 天天干天天射天天| 国产69精品久久久久久久久久久久| 欧美成人怡红院| 中文字幕成人免费视频| 欧美性爱在线观看| 亚洲无码字幕| 香蕉视频日韩| 正在播放ADN156松下纱荣子| 特极西西444WWW大胆无码| 三浦恵子一级婬片A片| 樱桃码一区二区三区| 成人无码区免费AV片| 插插插菊花综合网| 无码人妻一区二区三区三| 乱伦视频网| 青青草原成人| 可以免费观看的毛片| 国产精品女人精品久久久天天| 久久99久久99久久99国内少妇精品| AV2014天堂网| 人人操人人看人人| 在线观看高清无码中文字幕| 熟女人妻人妻HD| 猫咪AV大香蕉| 无码人妻AⅤ一区二区三区| 欧美AAAAAA视频| 91精品综合| 亚洲国产成人91PORN| 国产精品99精品| 国产精品自拍一区| 波多野结衣黄色| 在线观看视频91| 成人免费黄色片| 激情日韩| 粉嫩一区二区三区四区| 狠狠操网| 无码AV大香线蕉伊人| 大香蕉AV在线观看| 国产精品久免费的黄网站| 青吴乐大香蕉| 爱搞逼综合网| 大香蕉伊| 国产精品久久久久精| 日韩久久婷婷| 国产91www| 漂亮人妻吃鸡啪啪哥哥真的好| 成人视频一区二区| 丁香色五月婷婷| 无码欧美成人AAAA三区在线| 自慰在线观看网站| 91色视频在线观看| 色墦五月丁香| 悠悠色综合| 黄色成人网站在线播放| 东京热91| 亚洲国产欧美在线| 欧美性生活视频| 999高清无码| 91午夜福利| 超碰91在线观看| 综合色区| 欧美男人的天堂| 丁香乱伦| 免费看毛片的网站| 黄色视频在线观看大全| 成人在线伊人| 精品国产va久久久久久| 九一精品| 午夜国产在线观看| 激情丁香| 日韩小视频在线| 久久另类TS人妖一区二区| 日中国老太太B| 91精品视频在线免费观看| 一牛影视精品av| www99国产| 中文字幕免费视频在线播放| 欧美三级片视频| 九九热在线观看| 国产一区二区三区免费视频| 亚洲AV无码一区东京热久久| 成人动漫在线观看| 人人插人人射| 青青青青青操| 人妻懂色av粉嫩av浪潮av| 国产乱婬片视频| 亚洲口爆| 午夜无码av| 日韩在线视频91| 热久久最新地址| 成人在线91| 国产色情在线观看| 西西人体444rt高清大胆模特 | 欧美成a| 伊人色色| 亚洲三级国产| 香蕉av在线播放| 九九精品12| 性色网站| 亚洲成人AV在线| 91在线无码精品秘入口动作| 99热香蕉| 色综合一区二区三区| 成年人黄色电影| 欧美午夜无码| 日皮视频在线免费观看| 老太婆擦BBBB撩BBBB| 日韩精品一区二区亚洲AV观看| 简单AV网| 北条麻妃九九九在线视频| 日韩精品免费一区二区在线观看 | 午夜艹 | 免费黄网站在线观看| 午夜无码福利在线观看| 精品爆乳| 日韩wuma| 亚洲av二区| 日本特黄一级片| 国模一区二区三区| 91在线看18| 蜜芽av在线观看| 伊人久久大香色综合久久| 狠狠大香蕉| 国产盗摄AV| 免费看黄片| 亚洲日日干| 中文字幕精品综合| 东京热网站在线观看| 天天干天天色天天射| 免费日韩AV| 91欧美| 亚洲天堂人妻少妇| 无码日韩AV| 五月天久久久久久| 中文字幕在线欧美| 欧美日韩国| 国产日韩欧美成人| av无码av天天av天天爽| 色欲AV秘无码一区二区三区| 九久热| 在线三级片视频| 北条麻妃JUX-869无码播放| 97久久一区二区| 国产操逼电影| 成人婷婷| 高清无码在线免费| 色诱av| 精品人妻少妇| 黄色毛片,男人天堂| 欧美性爱操逼视频| 5252a我爱haose01我愿| 黄色网页免费观看| 操碰在线观看| 中文字幕av免费在线观看| www.豆花视频成人版| 国产精品一级a毛一级a| 亚洲中文字幕网站| 色五月婷婷五月| 青娱乐自拍视频| 国产一区二区三区在线| 午夜国产精品AV| 日韩av电影免费在线观看| 国产精品国产三级国产AⅤ| 午夜色色影院| 色婷婷香蕉在线一区二区| 欧美日韩婷婷| 久久私人影院| 日韩v在线| 青青草原AV| 91视频网站| 久久久精品久久| 中国毛片视频| 欧美亚洲日韩在线观看| 色婷婷在线观看视频| 国产成人精品一区二区三区| 欧洲激情网| 兔子先生和優奈玩游戲脫衣服,運氣報表優奈輸到脫精光 | 国产精品久久777777| 九九热播精品| 色视频网| 免费观看高清无码| 亚洲无码在线免费| 无码福利| 亚洲福利视频97| 先锋影音亚洲无码av| 亚洲ww国产a大作| 国产精品成人在线观看| 在线看黄色片| 你懂的在线视频| 欧美干综合| 天天搞天天干| 无码精品久久| 色婷婷基地| 大香蕉伊人9| 全国男人的天堂网站| 天堂视频在线观看亚洲美女| wwwsesese| 亚洲人体视频| 免费看欧美日黄片| 97人妻一区二区精品免费视频| 中文字幕在线免费观看电影| 91调教视频| 色哟哟AV| 久久三级片电影| 欧美日韩亚洲成人| www.av91| 三级久久| 亚洲国产中文字幕在线播放| 日本中文视频| 亚洲区视频| aaa在线免费视频| 婷婷综合欧美| av在线免费观看网站| 亚洲三级免费| 91福利视频网| 色色五月丁香婷婷| 午夜福利亚洲| 国产手机AV在线| www.91madou| 亚洲欧洲成人在线| 91麻豆免费视频网站| 天天干婷婷五月天| 91成人看片| 天天干视频| 91国产人妻| 日韩中文字幕无码中字字幕| 97人妻人人澡| 中文原创麻豆传媒md0052| 性爱AV在线| 婷婷五月丁香网| 91精品国产人妻| www俺来也com| 蜜桃av一区二区三区| 亚洲色图15P| 日韩无码A| 91在线免费视频观看| 欧美一卡二卡| 亚洲精品福利视频导航| AV色片| 亚洲字幕在线播放| 搡bbbb| 成人视频在线观看免费| 久久精品综合| 国产性爱自拍视频| 三级片久久久| 国产女人水真多18毛片18精品| 成人精品视频网站| 高清无码一区| 日韩精品无码AV| 日韩免费三级片| 做爱网站在线观看| 国产多人搡BBBB槡BBBB| 亚洲第一免费视频| 国产丝袜AV| 成年人免费视频在线观看| 成人毛片在线观看| 无码中文字| 中文字幕不卡在线| 成人网站视频在线免费观看| 97AV视频| 欧美一区二区无码视频| 亚洲国产视频在线观看| 国产经典午夜福利视频合集| 国产精品资源| 三级黄色免费网站| 插菊综合网| 在线a视频免费观看| 欧美夜夜爽| 久久精品视频播放| 99毛片| 日本视频网| 热99在线| 亚洲AV无码成人精品区天堂小说 | 日韩免费毛片| 2017天天干天天射| 中文字幕乱码中文字乱码影响大吗| 欧美一道本在线| 岛国AV在线播放| 亚洲一线在线观看| 欧美久久视频| 亚洲中文字幕人妻。| 成年人免费公开视频| 日韩人妻精品无码| 吴梦梦一区二区三区| 狠狠干b| 伊人久久福利视频| 欧美国产乱伦| 在线看黄网站| 自慰一区| 色午夜| 亚洲无吗视频| 精品自拍视频| 免费av观看| 91拍真实国产伦偷精品| 成年人黄色在线观看| 免费黄色毛片| 色婷在线视频| 99这里只有精品| 色吊丝中文字幕| 一级黄色毛片| 伦理被部长侵犯HD中字| 丁香五月激情中文字幕| 九九精品视频在线播放| 99热日| 草逼电影| 成人自拍网站| 碰碰97| av手机天堂| 婷婷色色婷婷五月天| 亚洲色图欧美另类| 影音先锋AV资源网站| 国产激情片| 一本久久综合亚洲鲁鲁五月天| 第一福利视频| 亚洲欧洲天堂| 欧美高清无码| 嫰BBB槡BBBB槡BBBB| 欧美一级特黄AAAAAA片在线视频 | 亚洲激情片| 女人久久久久| 五月天最新网址| 欧美成人三级在线播放| 操逼片| 亚洲爱| 国产婬片一级A片AAA毛片AⅤ| 99无码视频| 欧美熟妇一区二区| 国产亚洲欧美一区二区| Av一区二区三区| 国产伦精品一区二区三区妓女下载 | 久久午夜福利视频| 亚洲精品乱码久久久久久蜜桃91| 琪琪久久| 高清无码视频在线观看| 中文字幕日韩电影| 国产影视av| 手机AV在线| 影音先锋色先锋| 丰满大爆乳波霸奶| 一区二区三区在线观看| 一区二区三区四区精品视频| 亚洲视频三区| 一区二区三区四区五区在线| 大香蕉尹人视频| 香蕉国产精品| 自拍偷拍网站| 综合色网站| 欧美熟妇另类久久久久久不卡| 综合伊人| 国产女人18毛片水18精| 欧美三级欧美三级三级| 38D蜜桃臀| 高清无码操逼| 99久久99久久兔费精桃| av在线资源网站| 亚洲天堂无码在线观看| 国产l精品久久久久久久久久| 日韩成人AV在线播放| 99热亚洲| 日韩三级片无码| 天堂视频在线观看亚洲美女| www.国产豆花精品区| 亚洲中文字幕不卡| 亚洲videos| 国产AV自拍-久| 在线免费看AV| 亚洲高清成人| 高潮91PORN蝌蚪九色| 亚洲欧美在线观看| 日韩福利电影| 天天躁夜夜躁狠狠躁AV| 国产噜噜噜噜噜久久久久久久久| 欧美日韩成人| 天天干天天日天天| 国产成人免费在线视频| 91日韩视频在线| 中文字幕永久在线| 日本成人黄色视频| 大地资源38页| 91人人妻人人| 插逼视频国产| 一区二区AV| 日韩欧美午夜成人无码| 亚洲激情无码视频| 二级黄色毛片| 中文人妻av| 欧美日韩精品在线观看| 婷婷色色网| 成人免费看A片| 欧美日韩国产成人在线观看| 性A免费在线播放| 国产视频网| 蜜桃视频一区二区| 青青草原视频在线| 久久亚洲AV成人无码国产野外| 国产乱伦精品视频| 黄网在线| 操欧美逼| 乱伦无码视频| 九九综合网| 国产xxxx视频| av色欲| 六月丁香五月| 怡红院成人网| 淫揉BBB揉揉揉BBBBB| 欧美一级大香蕉| 成人视频你懂的| 69国产成人综合久久精品欧美| 无码任你操| 18成人毛片| 日韩在线中文字幕| 麻豆AV96熟妇人妻| 中文字幕在线有码| 91久久国产综合久久91精品网站 | 日本人妻在线观看| 7777精品伊人久久7777| 天堂网中文在线| 欧美午夜精品久久久| 欧美在线播放| 日本成人中文字幕| 亚州激情| 色五月婷婷综合| 人妻天天干| 狠狠干在线观看| 91麻豆精品国产91久久久久久| 欧美亚洲操逼视频| 欧美婷婷在线| 91麻豆一区二区| 亚洲色视频在线观看| 午夜福利高清在线观看| 亚洲V| 亚洲国产精品视频| 日韩美女视频19| 欧美在线综合| 国产高清Av| 中文字幕无码高清| 欧美丰满人妻| 色哟哟无码| 9l农村站街老熟女| 欧美A片网站| 欧美在线无码| 内射| 亚洲人成人无码一区二区三区| 91爱爱·com| 亚洲AV成人电影| 波多野结衣视频免费在线观看| 蜜桃AV在线观看| 深爱激情综合网| 六月婷婷在线| 亚洲无码高清免费| 狠狠色狠狠撸| 男女性爱视频网站| 一卡二卡三卡无码| 精品无人区无码乱码毛片国产| 欧美熟妇擦BBBB擦BBBB| 97精品无码| 国产精品免费一区二区三区四区视频| 欧美日韩大屌| 亚洲成人无码高清| 人人摸人人看人人| 亲孑伦XXXⅹ熟女| 91在线你懂的| 婷婷成人视频| 麻豆一二三区| 激情久久AV一区AV二区AV三区 | 无码精品人妻一区二区三刘亦菲 | 人人妻人人做| 日韩操逼av| www99精品| 成人A片在线| 激情久久AV一区AV二区AV三区 | 色搞搞| 国产AA| 欧美日韩成人| 国产剧情一区二区av在线观看 | 国产精品久久久久久久久久久久久久久 | 国产黄A片免费网站免费|