久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

深耕商務建站與企業(yè)官網(wǎng)運營的一線實戰(zhàn)洞察。

PHP8.2怎么使用模板方法模式定義流程

PHP8.2怎么使用模板方法模式定義流程 前言先明確一點模板方法模式Template Method Pattern不是 PHP 8.2 的特性。它是《設計模式》里的行為型模式靠繼承和抽象類實現(xiàn)與語言版本無關。標題里帶PHP8.2的合理理解是在 PHP 8.2 環(huán)境下怎么寫本文按這個角度展開并順帶用上 PHP 8.2 新增的幾項語言能力——readonly類、DNF 類型、獨立的null/false/true類型讓代碼更緊湊也更安全。模板方法要解決的問題是流程是固定的但其中若干步驟在不同業(yè)務下實現(xiàn)不同。數(shù)據(jù)導入、支付下單、報表生成、消息推送都屬于這一類。它們的共同特征是骨架順序不能亂——導入必須先校驗再落庫支付必須先凍結再扣款再通知——但每一步的細節(jié)因渠道而異。寫法上模板方法把流程骨架放在父類的一個final方法里把可變部分聲明為abstract必須實現(xiàn)或留成有默認實現(xiàn)的鉤子方法hook method子類按需覆蓋。是父類決定什么時候調(diào)用子類而不是子類決定——這就是好萊塢原則Hollywood PrincipleDont call us, well call you。一、模板方法的四個組成角色職責約束模板方法定義流程骨架按順序調(diào)用各個步驟必須是final否則子類可以破壞流程抽象步驟每個子類都必須實現(xiàn)的差異點abstract protected不能是public鉤子方法hook有默認實現(xiàn)子類按需覆蓋的可選擴展點默認實現(xiàn)通常是空方法或恒等變換子類只實現(xiàn)/覆蓋步驟不碰流程不能重新定義步驟的調(diào)用順序判斷一個方法該做成抽象步驟還是鉤子看每個子類是不是都必須提供不同實現(xiàn)大部分子類實現(xiàn)一致的就給默認實現(xiàn)做成鉤子每個子類都不同且沒有合理默認值的才做成抽象方法。抽象方法給多了子類被迫寫一堆空方法這是模板方法最常見的失敗形態(tài)。二、用 PHP 8.2 寫一個數(shù)據(jù)導入骨架典型場景要支持 CSV 和 JSON 兩種來源但讀 → 校驗 → 變換 → 落庫 → 收尾的順序?qū)烧咭粯印?php // template-method.php —— 需要 PHP 8.2 // 用法php template-method.php declare(strict_types1); /** 只讀結果對象readonly 類是 PHP 8.2 引入的 */ final readonly class ImportReport { public function __construct( public string $source, public int $imported, public int $skipped, ) {} public function summary(): string { return sprintf(來源%-24s 成功%d 跳過%d, $this-source, $this-imported, $this-skipped); } } /** 骨架類流程在這里定死、細節(jié)交給子類run() 是 final流程不允許改寫 */ abstract class AbstractImporter { /** 模板方法固定順序不接受子類修改 */ final public function run(string $path): ImportReport { $this-beforeRun($path); // 鉤子準備階段 $imported 0; $skipped 0; try { foreach ($this-read($path) as $row) { if (!$this-validate($row)) { $skipped; // 數(shù)據(jù)問題跳過這一行 continue; } $this-persist($this-transform($row)); $imported; } } finally { $this-cleanup(); // 無論成功失敗都要收尾 } $report new ImportReport($path, $imported, $skipped); $this-afterRun($report); // 鉤子通知階段 return $report; } // —— 抽象步驟子類必須實現(xiàn) —— abstract protected function read(string $path): iterable; abstract protected function validate(array $row): bool; abstract protected function persist(array $row): void; // —— 鉤子方法有默認實現(xiàn)子類按需覆蓋 —— /** 默認只給字符串做 trim子類可以覆蓋后調(diào)用 parent */ protected function transform(array $row): array { return array_map( static fn(mixed $v): mixed is_string($v) ? trim($v) : $v, $row ); } protected function beforeRun(string $path): void {} protected function afterRun(ImportReport $report): void {} protected function cleanup(): void {} } /** CSV 實現(xiàn)只關心怎么讀 CSV和怎么落庫 */ final class CsvImporter extends AbstractImporter { private array $rows []; protected function read(string $path): iterable { $handle fopen($path, rb); if ($handle false) { throw new RuntimeException(無法打開 CSV 文件: {$path}); } try { $header fgetcsv($handle); if ($header false) { return; // 空文件生成器直接結束 } while (($line fgetcsv($handle)) ! false) { if (count($line) ! count($header)) { continue; // 列數(shù)對不上跳過這一行 } /** var arraystring, string|null $assoc */ $assoc array_combine($header, $line); yield $assoc; } } finally { fclose($handle); } } protected function validate(array $row): bool { return isset($row[name]) $row[name] ! ; } protected function persist(array $row): void { // 真實項目里這里是 INSERT示例中先緩存在內(nèi)存里 $this-rows[] $row; } protected function afterRun(ImportReport $report): void { echo 落庫行數(shù): , count($this-rows), PHP_EOL; } } /** JSON 實現(xiàn)復用同一套流程只覆蓋差異部分 */ final class JsonImporter extends AbstractImporter { protected function read(string $path): iterable { $raw file_get_contents($path); if ($raw false) { throw new RuntimeException(無法讀取 JSON 文件: {$path}); } // JSON_THROW_ON_ERROR 是 PHP 7.3 引入的 $data json_decode($raw, true, 512, JSON_THROW_ON_ERROR); if (!is_array($data)) { return; } foreach ($data as $row) { if (is_array($row)) { yield $row; } } } protected function validate(array $row): bool { return isset($row[name]) is_string($row[name]) $row[name] ! ; } protected function persist(array $row): void { // 真實項目里這里是 INSERT INTO ... } /** 覆蓋鉤子先讓父類做通用清洗再補自己的業(yè)務規(guī)則 */ protected function transform(array $row): array { $row parent::transform($row); // 不要丟掉父類行為 if (isset($row[amount])) { $row[amount] (float) $row[amount]; } return $row; } protected function beforeRun(string $path): void { echo 開始導入 JSON: , basename($path), PHP_EOL; } } // ———— 跑起來 ———— $csv sys_get_temp_dir() . /tm-demo.csv; file_put_contents($csv, name,amount\n 手機 ,1999\n,0\n耳機,299\n); $json sys_get_temp_dir() . /tm-demo.json; file_put_contents($json, json_encode([ [name 鍵盤 , amount 399.5], [name , amount 1], [name 顯示器, amount 1299], ], JSON_UNESCAPED_UNICODE)); // 兩個子類共用同一個模板方法只是傳入的文件不同 echo CsvImporter::class, PHP_EOL; echo (new CsvImporter())-run($csv)-summary(), PHP_EOL, PHP_EOL; echo JsonImporter::class, PHP_EOL; echo (new JsonImporter())-run($json)-summary(), PHP_EOL; unlink($csv); unlink($json);輸出路徑隨臨時目錄不同而變化CsvImporter 落庫行數(shù): 2 來源.../tm-demo.csv 成功2 跳過1 JsonImporter 開始導入 JSON: tm-demo.json 來源.../tm-demo.json 成功2 跳過1這段代碼有幾個設計點run()是final。這是整個模式的立身之本流程順序由父類單方面決定子類只能填空。少了final任何子類都能悄悄改掉先校驗還是先落庫而這種改動在 code review 時極難發(fā)現(xiàn)。抽象步驟是protected而不是public。persist()若設成public外部就能繞過run()直接調(diào)用流程約束形同虛設。鉤子方法提供默認無害行為。transform()默認只做 trimbeforeRun()、cleanup()默認是空方法所以新子類只需實現(xiàn)三個抽象方法。cleanup()放在finally里、read()用iterableyield。前者保證拋異常也會收尾后者讓大文件導入不必把全部行讀進內(nèi)存。PHP 8.2 語言特性在這個模式里的位置PHP 8.2 特性在模板方法里的用途readonly類把ImportReport這類產(chǎn)出物做成不可變對象避免子類在afterRun()里篡改統(tǒng)計數(shù)字DNF 類型 (AB)\C獨立的null/false/true類型鉤子返回值可直接聲明為false不必寫bool再補一句只返回 falseDNF 類型的寫法容易記錯它要求交叉類型部分必須用括號包起來形如(CountableIterator)|array。要留意的是這類交叉類型的要求很具體Generator實現(xiàn)了Iterator但不實現(xiàn)Countable所以不滿足該類型傳進去會拋TypeError。三、和直接寫兩個類比模板方法贏在哪一種常見的反對意見是既然流程一樣直接寫兩個類各復制一份不就行了短期可行長期出問題對比項各自復制的兩個類模板方法流程變更要改 N 處容易漏改一處改父類一處全部生效新增實現(xiàn)復制整個流程再改細節(jié)只實現(xiàn) 3 個抽象方法收尾/異常處理每個類各寫一遍容易漏finally在父類統(tǒng)一處理流程一致性靠約定容易被改壞由final保證測試每個類都要重測流程流程可單測父類子類只測步驟模板方法還讓流程變成可測試的實體寫一個假子類把每個步驟記下來就能斷言校驗一定發(fā)生在落庫之前。常見坑點1. 模板方法沒加final流程被某個子類悄悄改掉// ? 子類可以覆蓋 run()把先校驗改成先落庫出問題很難定位 public function run(string $path): ImportReport { /* ... */ }// ? 模板方法一律 final final public function run(string $path): ImportReport { /* ... */ }2. 抽象步驟寫成public外部可以繞過流程直接調(diào)用// ? 外部能直接 $importer-persist($row)校驗和變換全部被跳過 abstract public function persist(array $row): void;// ? 步驟只對子類開放 abstract protected function persist(array $row): void;3. 覆蓋鉤子時忘了parent::父類行為被整段丟掉// ? 父類做的通用清洗trim 等全部失效只有子類的邏輯生效 protected function transform(array $row): array { $row[amount] (float) $row[amount]; return $row; }// ? 先父后子除非你明確就是要完全替換父類行為 protected function transform(array $row): array { $row parent::transform($row); $row[amount] (float) $row[amount]; return $row; }4. 父類里用self::調(diào)用步驟子類的覆蓋沒生效// ? self:: 綁定在定義它的類上子類覆蓋 step() 也調(diào)不到 abstract class Base { final public function run(): string { return self::step(); } protected static function step(): string { return base; } } final class Child extends Base { protected static function step(): string { return child; } } echo (new Child())-run(); // 輸出 base不是 child// ? 需要子類改寫生效時用 static::晚靜態(tài)綁定 abstract class Base { final public function run(): string { return static::step(); } protected static function step(): string { return base; } }需要說明的是用$this-method()調(diào)用實例方法時走的是虛方法分派不會有這個問題這個坑只出現(xiàn)在self::調(diào)用靜態(tài)方法或靜態(tài)屬性上。5. 抽象方法給太多子類被迫實現(xiàn)一堆空方法// ? 五個抽象方法而大部分子類只關心其中兩個剩下三個只能寫空實現(xiàn) abstract protected function read(string $path): iterable; abstract protected function validate(array $row): bool; abstract protected function transform(array $row): array; abstract protected function beforeRun(string $path): void; abstract protected function cleanup(): void;// ? 只有沒有合理默認值的才做抽象方法其余做成鉤子 abstract protected function read(string $path): iterable; abstract protected function validate(array $row): bool; abstract protected function persist(array $row): void; // 其余四個給默認實現(xiàn)6. 在父類里直接new具體依賴子類無法替換// ? 測試時沒法把 HTTP 客戶端換成替身也沒法換一個日志目標 abstract class AbstractImporter { final public function run(string $path): ImportReport { $logger new FileLogger(/var/log/import.log); // ... } }// ? 依賴從構造函數(shù)注入父類只管調(diào)用 abstract class AbstractImporter { public function __construct(protected LoggerInterface $logger) {} final public function run(string $path): ImportReport { /* 用 $this-logger */ } }7. 繼承層次超過兩層模板方法變成了考古現(xiàn)場// ? 子類又被子類繼承步驟被覆蓋了三層讀代碼要先翻三代父類 class A { final public function run(): void { $this-step(); } protected function step(): void {} } class B extends A { protected function step(): void { parent::step(); /* ... */ } } class C extends B { protected function step(): void { parent::step(); /* ... */ } } // ? 保持一層繼承子類直接繼承骨架需要組合時把可變部分做成對象注入進來 final class CsvImporter extends AbstractImporter { /* 只實現(xiàn)步驟 */ }總結關注點結論模式歸屬設計模式與版本無關標題里的 8.2 指運行環(huán)境而非特性來源骨架方法必須final且只負責調(diào)用順序不負責細節(jié)抽象步驟abstract protected只放每個子類都必須不同的部分鉤子方法有默認實現(xiàn)覆蓋時記得決定要不要parent::調(diào)用方式實例方法用$this-靜態(tài)方法要留擴展點就用static::依賴 / 收尾依賴從構造函數(shù)注入收尾邏輯放在父類的finally中只有一處8.2 加成readonly類保護產(chǎn)出物DNF 類型精確表達參數(shù)結論模板方法的價值在于把流程從實現(xiàn)里抽出來并讓流程不可被破壞。判斷要不要用它只需問一句這段流程的順序是不是業(yè)務契約的一部分如果必須先校驗再落庫這樣的約束必須被保證就該用模板方法并把骨架方法寫成final如果只是幾個獨立算法換來換去、順序本身沒有約束那么組合把算法作為對象注入會比繼承更合適。另外請把抽象方法的數(shù)量壓到最低——鉤子給默認實現(xiàn)、依賴走構造函數(shù)注入、收尾放進finally做到這三條模板方法就能長期保持可讀。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
99RE在线视频精品,这里只有精品| 亚洲精品人伦一区二区| www.狠狠干.coom | 宅男影院久久久,99| 强奸乱伦αv片| 日韩综合色网| 四虎免费看黄| 亚洲 欧美 91| 无码伊人久久大杳蕉中文无码| 久久久久女教师免费一区| 国产少妇与亚洲av| 国产情侣自拍在线播放| 色官网在线| 亚洲一区日韩精品| 另类天堂| 美女9118禁| 婷婷探花久久精品一区| 欧美亚洲首页| 沈阳熟女高潮对白视频| 亚洲综合伊人无码久久| 久操视频免费观看| 蜜桃色院一区久久 | 60秒免费小视频| 九九九九九九九九九九九免费国产| 国产精品无码AV网站| 午夜福利av电影在线| 欧美激情一区| 熟妇的味道HD中文字幕| 免费观看性欧美一级| 婷婷色综合欧美日韩| 亚洲欧美综合图片| 久久久极品| 加勒比av网| 国产精品高朝久久久久久久| 少好三P| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 九九九精品一区二区无码| 中文字幕片| 麻豆天美电影一区二区| 高清不卡国产| 亚洲欧美日韩有码| 中文字幕av一区二区三区人妻少妇| 久久人妻少妇| 精品无码久久| A级在线视频| 天天干天天操天天操夜夜操天天操 | 欧美的性爱网站免费| 最新亚洲黄色免费电影| 中字幕人妻一区二区三区| 日韩无码操逼片| 韩国黄片aaaa| 青草青草久热| 视频二区美腿丝袜制服人妻欧美| 欧美熟女激情| 日本精品九九九| 伊人嫩草| 亚州91| 日韩三级伊人| 欧美日韩香蕉| 狠狠中文字幕| 97网色| 国产精品网址| 久久人人爽爽人人爽人人片αV| av一区二区三区不卡| 亚洲精品一二区| 日本人人操人人操| 2019午夜福利视频| 免费精品无码一级毛片牛牛影视 | 国模精品娜娜一二三区| 欧美日韩青操| 欧美91网| 天天操人人操狠狠插| 91精品无码人妻系列| 91狠狠色丁香婷婷综合久久精品| 国产青青美女玩逼视频| 亚洲激情视频| 性爱乱伦一区| 久噜噜| 美女性91| 欧美日本中字另类在线| 青青青国产| 啊嗯嗯啊好大好爽| 国产一区二区在线播放量| 在线播放一级无码视频| 麻豆性爱视频在线播放| 久热一区二区| 日韩另类| 2017天天透天天通天天擦| 少妇无码999| 91亚洲色人| 精品久久99| 亚洲日产专区婷婷| 一级片视频啪啪| 人人操人人操草草| 伊人嫩草| 91中文在线| 91AV天美在线视频| 亚洲天堂人妻熟妇视频| 国产成人主播| 亚洲 欧美 制服 另类 自拍| av在线浏览| 少妇高潮一区二区三区在线| 日本视频一区二区三区| 久久久不卡区一区二区三区久久久| 人人操人人摸超碰| 欧美网站免费| 欧美日韩国产人人| 影音先锋视频在线| 97精品久久久久中文字幕| av天堂电影网| 920日本午夜免费| 一摸二插三插| www.av在线观看| 欧美A√综合网| 色精品极品| 亚洲在线观看| 九九热九九| 亚洲色综网| 国产精品呦一区二区三区| 啊啊啊啊啊在线视频| 中文字幕一区二区视频在线观看 | 欧美在线视频播放| 亚洲天堂7777| 青女偷拍网| 91快色色色色色| 嫩草影院永久在线制服丝袜| 顶级丝袜熟女一区二区三区| 久久久999国产精品| 狠狠色狠狠色狠狠五月| 欧美日韩中文字幕不卡| 婷婷五月天福利| 99999亚洲| 婷婷丁香在线| 久久久96| 亚洲女优有码无码高清| 国产精品 亚洲情色| 狠狠干91| 一摸二插三插| 色优久久| 偷拍 欧美 日韩| 麻豆性爱视频在线播放| 国产小视频91| 免费试看60秒| 欧美 日韩 另类 亚洲| 亚洲成人一区二区精品| 加勒比色99999| 97精品一二区| 国产精品无码在线| 屁股久久久久久| 亚洲91网。| 亚洲国产成人精品无码专区| 日本欧美不卡| 色九九九九| 日本五十路熟女一区二区| 婷婷人妻激情| 欧美狠狠弄| 东亚亚洲无码高清| 97超碰久久| 精品免费国产二区三区| 日本色婷婷| 欧州一区二区三区四区| 91M一社| 蜜桃久久综合视频| 欧美情色男人的天堂| 一区二区三区黄色片a| 天操天操夜操夜月月年年操操| 五月婷婷大香蕉| 伊人网青青| 久久久久久人| 黄网站黄视频网站进入口| 国产精品视频白浆免费| 欧美18 在线观看| 久久久久极品| 91在线/欧洲| 久久9精品视频| www狠狠| 国产福利夜| 美女被艹尤物视频| www.99中文字幕| 97av在线观看| 亚洲AV色图一区| 亚洲中文人妻色| 在线视频日韩欧美国产| 99热99在线播放激情| 大香蕉欧美| 97久操| 精品一区二区麻豆| 国产有码一区| 日韩人体偷拍| 欧美综合自拍成人自拍第二十页| 乱伦日本色图AⅤ| 免费啪啪av| 中文字幕国产在线天堂| 91 偷| 日本一级不卡一二区| 91九九九小逼| 日夜干射色啊| 青草香蕉网| 丰满少妇人妻久久久久久| 91超级碰碰| 尤物一级在线免费观看| 天天视频综合在线观看视频| 久久青青草原免费视频| 熟妇的味道HD中文字幕| 超碰成人公开| 操逼不卡中文字幕| 日本污ww视频网站| 激情开心五月天| 亚洲综合成人网| 人妻aa| 欧美顶级黄片AAAAA在线免费看| 欧美日韩操逼动图| 一牛影视成人片免费| 一级黄色视频网| 天天激情综合站| 国产黄色视频久久| 一个色导综合| 国产亚洲精品农村妇女 | 久久6热视频免费观看| 福利社区午夜一区二区| 99热国产| 欧美老熟另类| 亚洲自拍欧美色综合| 亚洲人妖网| 97资源免费视频| 天天综合网~91综合网| 欧美色图小说综合| 一区二区三区美女超清| 日韩欧美中文| 日本三级中国三级99人妇网站| 激情五月婷婷| 无码人妻丰满熟妇奶水区毛片| 欧美亚洲影视| 久久内射| 亚洲图片日本AⅤ欧美在线| 日韩高清黄片| 色情成人五月天| 久操99| 99国产精品免费| 蜜臀久久99'精品久久久| 2020天天色综合| 老熟女91| 国产AV久久久蜜爱影集| 国产精品女同| 亚洲素人综合| 草草草视频在线免费看| 日韩黄色一区二区三区| 嗯嗯嗯好爽| 麻豆激情综合| …亚洲黄色厕厕女女在线播…| 大香蕉一级黄色片久久| 久久国内| juliaann丝袜大战黑鬼| 另类图片天天影视| 大伊香蕉在线视频免费| 综合日韩激情另类图片| 国产丁香精品露脸视频| 亚洲一级性爱视频免费看| 久热99| 亚洲www91| 五十路一区无码| 嗯啊抽插大香蕉网页| 久久五月婷| 曰本91情色| 91天天综合日韩欧美| 手机在线视频国内精品| 日韩三级网址| 亚洲不雅视频1区二区| 人人操人人干网页| 激情视频一二三| 中文字幕一区二区视频在线观看| 思思热在线| 91美女視頻| 男人天堂网站| 国产精品小视频一区二区三区| 污电影在线观看| 亚洲国产精品99久久久| 国产亚洲 中文欧美久久| 色踪合AV| 日韩黄色一区二区三区| 欧亚成人在线视频| 久久久精品91八戒| 亚洲蜜臀视频精品久久| 激情五月综合开心五月| 欧美亚州色的图| 91大神精品长腿在线观看网站| 99操视频| 久久久极品| 精品国产久热在线观看| 在线播放欧洲免费av| 免费的很黄很污的全部视频| 黄总AV色图| 青青草日逼视频| 在线播放成人高清免费视频| 91 天天综合| 亚洲视频小说| 亚洲欧洲激情卡通另类文学四射小说网站 | 欧美亚洲美少妇一区二区| 久久天堂| 美女啊啊啊啊pc| 操东北女人| 欧美黄页在线| 日韩三级在线观看网站| 国产精品午夜成人福利| 久久黄色视频一区二区三区| 欧美 熟女 日韩| 萌白酱自拍视频| 欧美丝袜美女电影一二三四区| 日韩欧美tv一区二区在线观看| 四虎视频在线观看| 成人性爱电影一区二区| 久久香蕉国产线看观看亚洲女人 | 75大香蕉| 国产剧情AV不卡在线观看| 热热色综合网| 日本三级韩国三级99| 男同专区一区二区三区在线| 天天色悠悠激情| 国产精品人妻无码久久久老鸭窝| 天天澡天天爽日日av| 亚洲无吗在线视频| 果冻传媒A片麻豆熟妇人妻| 大稥蕉免费视频这里只有精品| 97天堂| 欧美三级免费伊人| 另类小色呦| 99re这里只有精品2| 一品道视频一区二区三区| 亚洲男人天堂网| 欧洲小说色图视频另类| 五月丁香网站| 色色网91| 91在线免费精品视频| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 久久 久久国内精品亚洲| 国内精品伊人久久久久影院会| 亚洲人妻日日日| xxx亚洲午夜天堂| 日韩激情啪啪| 五月天久久综合网| 欧美碰碰综合色| 91国产美女丝袜足交精品视频| 欧亚性爱视频免费看| 亚洲在线a| 日本熟妇色熟妇在线视频播放| 婷婷伊人綜合中文字幕小说| 岛国片在线播放| 午夜啊啊| 精品超碰色| 欧美亚洲影视| 黄色二级片网站| 欧美网站免费| 国产激情在线观看| 亚洲AV无码AV吞精久久久久| 大JI巴好深好爽又大又粗视频| 亚洲污污网站| 国产美女91视频| 丁香五月偷拍| 亚洲操操| 亚洲欧美精品福利在线| 丝袜剧情| 日韩乱伦AⅤ| 中文字幕熟女人妻丝袜| 久九九九九九九九热| 97超碰免费人人性爱| 黄页大片在线观看| 大香蕉九九| 免费日韩黄片| 亚洲美女av无码| 午夜精品久久久久久久第一页按摩| 久草免费在线一区二区| 精品视频免费在线一区| 大香蕉九九| 老熟女搡BBBB搡BBBB视频| 91少妇人妻| 天天欲望网| 狠狠躁日日躁夜夜躁A| 91精品人妻一区二区-全集完整版免费正片国语-B02AV | 一级人妻性爱视频| 欧美激情一区| 亚洲激情综合另类| 91天天综合日韩欧美| 欧美色图99| 久久婷婷一区| 自拍啪啪视频| 欧美欧美少妇| 午夜精品久久久| 长久操视频| 欧美91精彩| 日本九九久久99播| 屌色在线97视频| av凤凰久久久| 99热日本| 亚洲国产欧美另类自拍| 国产欧美日韩一区二区三区| 免费福利视频中文字幕| 亚洲精品国产熟女| 久久av成人无码免费| 天天色天天干天天射| 精品国产一区二区三区四区在线看| 亚洲精品性爱片| 日本精品网站在线中文| 欧美系列在线一区二区| 丁香九月激情啪| 免费观看啪视频| 五月丁香六月激情| 国产女人高潮视频| 久久綜合很很很| 久久不卡一区二区 | 日日干天天干夜夜爽| 国产成年女黄特黄| 天天艹天天日| 狠狠干婷婷| 日韩人妻少妇中文字幕| 九九热精彩视频| 免看60秒涩涩视频| 玖玖爱影院| 久久欲| 亚洲高清无码在线桃色| 夜夜爽77777| 色呦呦、国产精品| 人妻少妇久久中文| 72av视频| 青娱乐久久艹| 精品久久久av| 91色伦| 日本一级特级毛片视频| 国产亚洲精品农村妇女| 久久怡红院| 久久久国产精品人妻丝袜| 色眯眯av| 日本黄大片在线观看视频| 一牛影视成人片免费| 国产玖玖| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 色婷婷影视| 密臀在线免费观看| 哈哈操 大香蕉| 五月天婷婷在线看| 天天干天天插| 亚洲欧美综合网站| 人人做,人人操,人人摸| 一本道综合色图| 日韩八十路老熟女| 欧美色www亚洲国产阿娇要播| 黄片aaaaa一区| 日韩AV电影网站| 日韩干B| 偷拍 欧美 日韩| 骚逼高潮久久精品| 美女十八禁| 无码人妻一区二区三区色欲aⅴ | 五月婷婷六月激情| 日本黄页视频在线观看| 国产又猛又粗又爽又黄| 久久人妻丝袜一区二区三| 欧美色图97| 国产亚洲日韩欧| 久久黄黄| 久久国产乱子伦精品免费女,网站| 影视综合无码少妇| 亚洲综合小视频小说在线观看| 熟人人妻少妇精品久久| 狠狠色综合网| 色网亚洲人| 黑人嘿嘿嘿超爽免费视频| 97精品国产手机| 欧美色宗合| 久久久com| 亚洲色交| 欧美色图99| 亚洲一级特黄大片在线播放91| 久久熟女人| 亚洲色图欧洲| 亚欧高清在线| 亚洲女优有码无码高清| 超碰成人免费| 中文有码9| 五月综合激情| 男女无套 免费网站| 精品久一区免费| 欧美一级黄色免费专区| 欧美久久毛片基地| 免费无码国产精品v片在线观看| 澳门成人网站久国产日韩| 欧美高清第一页| 国产精品无码av| 婷婷久草| 狠狠操狠狠爱| 老熟女91| 蜜臀久久久国产| 激情五月天插| 999久久芭蕾| 99热66| 不卡在线观看视频| 欧色性第一页| 久久免费精彩视频| 日本色日夜干| 亚洲综合图文| 欧美日韩岛国大片在线观看| 欧美97在线欧| 亚洲激情色片| 第一高清av中文字幕| 啊啊啊爽爽| av九九| 91性高朝久久久久久久久| 老司机免费视频在线91| 国产精选三级在线观看| 国产家庭乱伦表演| 综合色久欲| 综合色图区| 看免费一级在线播放毛片| 亚洲五区熟女| 九九在线视频| 不卡一区二区日本视频| 91综合熟女| 1000午夜黄色| 久久成人午夜精品影院| 国产精品日日摸天天碰| 色情亚洲日本成人| 欧美日韩国产色图在线| 超碰日韩人妻| 91情色在线| 禁十八久久| 婷婷性爱| 中文字幕一区二区在线日韩精品| 男人综合网| 天天日熟妇| 91九久| 亚洲欧美中文日韩视频中国语| 男人午夜天堂| 久艹免费| 欧亚日本情色| 久久成年精品| 99re这里只有精品中心播放 | 精品国产少妇高潮视频| 日本www操操操| 深夜福利黄片| 农村妇女精品一二区| 久草精品视频| 久久111| 99热超碰| 婷婷91| 欧美性爱三区二区| 成人无码在线超碰网| 亚洲欧美在线丝袜| 欧美综合综合| 久久五月份| 国产免费一区在线观看| 亚洲超碰AV| 变态乱伦伪娘灌肠一区二区| 91大神精品长腿在线观看网站| 成人性生活高清视频在线播放| 91 亚洲情侣偷拍 久久| 欧美韩国你懂得在线 | 免费精品中文字幕| 伊人黄色片| 18禁看网站一区| 曰韩人妻中文字幕在线 | 九九热精品视频在线观看| 九九性爱网| 国产 日韩 欧美 中文 另类,国产 欧美 另类 制服 变态,高清 日韩 欧美 中文,高 | 999国产精品999久久久久久| 91女优在线观看 | 99日精品欧美国产| 亚洲成a人在线观看久| 欧美日韩在线国产在线| 欧美性爱1080p| 欧美精品成人在线播放| 亚欧无码在线| 97一区二区三区视频| 欧美日韩婷婷中文| 国产精品久久久九九九| 亚洲素人网| 舔舔啊| 国际精品久久久| 激情文学亚洲| 中文字幕欧美丝袜07资源| 国产精品久久久久9999小说| 九九九九热| 加勒比性爱成人在线| 91精产一区二区三区| 超碰在线综合97| 丰满人妻-区二区三区免费看 | 国产精品老熟女一区二区| 婷婷在线精品| 久久发布国产伦子伦精品| 夜夜嗨AV蜜臀av| 99www.bibizy香蕉资源国产一区二区三区高清 | 亚洲四虎熟女精品| 欧美色五月| 久久婷婷国产一区二区色| 欧州激情视频在线一区二区| 天天综合网AV91| 亚洲欧美激情小说| 自拍偷拍国产欧美日韩韩| 日韩亚洲精品一区二区| 色色色欧美| 五月婷在线| 亚洲精品天天影视综合网| 欧亚日韩综合精品国产| 嗯嗯不要 视频| 婷婷av在线中文字幕| 亚洲日韩成人性爱视频| 中文字幕国产精品1区| 中文字幕日韩精品一区二区三区| 五月天亚洲网| 日韩欧美亚洲自拍偷拍| 国产 日韩 欧美 中文 另类,国产 欧美 另类 制服 变态,高清 日韩 欧美 中文,高 | 精品久久人妻成人网| 超碰爽人妻熟女Av| 国产免费一区| 极品欧美一区二区三区| 五月天玖玖资源站| 欧美大香蕉97| 日韩熟女精一区二区三区不卡| 日产操逼| 95人妻爽爽人人做人人澡 | 久久久111| 超碰九7| 1禁看欧美黄片免费看| 久久综合日韩亚洲欧美| 狠狠97| 久久精品日韩| 爱爱动态试试看6 0秒| 啊啊啊啊啊好多水| 亚洲最大的综合性av| 日韩精品高清资源在线| 91丰满| 亚洲五码一区二区三区| 日日黄色三级网站| 一本久久久精品| 国内偷自视频区视频综合| 欧美日韩99精品麻豆传媒| 粉嫩av一区二区三区四季| 久久性爱精品一区| 色眯眯射| 一起草高清无码| 国产精品一二三区福利| 欧美综色欧| jizzjizz欧美| 天堂亚洲精品久久老牛| 思思热免费在线视频| 超碰超碰欧美| 免费A片三p视频| 澳门人妻久久| 亚洲综合影院| 美女高潮视频91| 日韩性爱小视频| 五月激情天| 97chaopengongkai| 国产操偷| 后入日本1234| 国产成人+综合亚洲+天堂| 亚州色国| 五月天玖玖资源站| 夜夜骑日日| 国产高清成人传媒影视| 96精品久久久| 大香蕉AV在线| 91成人无码| 亚洲 中文 女同| 亚洲麻豆av一区二区| 欧美日韩理论一区| 人人艹亚洲| 亚洲欧美在线综合| 久久草在线综合视频| 男人天堂毛片| 日韩内射视频| 草草网站影院白丝内射| 九九九国产精品| 亚洲日产专区| 高清国产精品无码| 亚洲 中文 欧美 日韩 在线| 亚洲日韩精品在线播放| 国产做?爰片久久毛片?片美国| 亚洲在线观看| 东京热免费视频| 立川理惠被中出无码| 久久一二三四不卡 | 91痴汉| 亚洲综合色男人网| 一级性爱视频免费观看| 日日骚精品视频| 国产中文精品一区二区在线观看| 99国产精品自在自在| 2010男人的天堂| 亚洲av性爱电影| 色阁阁AV综合网| 丁香五月综合| 黄色大片免费在线| 亚洲欧美激情小说| 91美女在线视频| 国产呦精品一区二区三区下载| 亚洲国产97| 日韩综合97P| 欧美一级三级| 国产精品一区二区三区,亚洲综合 性开放中文AV高清无码免费看 | 97午夜剧场日韩| 精品国产人成在线| 日日摸日日碰夜夜爽视频| 99九九久久| 五月丁香六月| 美女被啪到深处抽搐视频| 伊人久久亚洲色欲综合网站| 天天综合AV| JIZZJIZZ亚洲女人被躁| 久久视频,这里只有精品| 97资源制服丝袜| 永久免费发布性爱网| 激情欧美97| 黄站在线免费观看| 性色av一区二区| 色优久久| 欧美黄片视频在线观看免费 | 久操操AV电影| 亚州91| 久久久久久久久久久久欧美日| 老鸭窝亚洲毛片| 你懂得91| 中国国产精品一区视频| 国产无码精品成人| 九色黄站| 人澡逼| 熟女AV一区| 蜜臀亚洲中文| 熟女被操视频网址| 婷婷激情五月天小说网| 色天使亚洲综合在线观看| 又粗又长又大国产不卡| yazhououmeizongya| 亚洲国产亚洲天堂| 国产精品久久久999| 性色一线| 亚洲综合网电影91| 依人大香蕉| 亚洲精品中文字幕一区在线视频| 日韩精品碰碰| 在线A日本| a片久久久久久久久久久久 | 色吧5亚洲| 黄片视频观看| 国产美女高潮| 天天影视色香欲综合网小说| 操逼网站网站| 国产偷人伦激情在线观看| 欧美性暴力| 91黑人狂躁丰满熟妇| 麻豆天天躁天天揉揉AV| 国产偷拍自拍在线视频| 亚洲欧美中文日韩视频中国语| 超碰97 线线 在现| 中文在线久久字幕| 一区二区三区欧美激情| www.yeyecao| 亚洲资源站| 国产夫妻性生活视频| 亚洲瓯美色图| 精品国产乱码久久久久久影片| 97精品一区| 青青伊人这里只有精品| 久久久工口| 校园春色制服丝袜中文字亚洲| 国产亚洲日本精品在线| 国产精品婬乱一级毛片彝族| 肉动漫无遮挡h在线观看| 欧美性视频二区三区| 一区二区精品更新提醒| 九九热视频在线观看| 俞拍久久国应视频| 精品夜夜澡人妻无码AV| 欧美暴力猛交| 国产精品夜夜| 超碰79人人乐| 一区二区不卡视| 伊人久久青青草| 亚洲91少妇| 色噜噜人妻av 中文字幕| 五月天婷婷成人网| 色偷偷色偷偷欧美日韩| 嗯嗯嗯嗯啊啊啊好紧好大| 97电影院超碰| 黄网站黄视频网站进入口| 人人澡综合涩| 综合久草| 夜夜 中文视频rt| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 91夜色| 十八禁视频一区二区| 一级特黄aaa大片在线观看成人一级片在线观看 | 中文字暮97| 欧美日韩97| 99这里只有精品| 91美女精品| 欧美躁死她一区二区| 99热国产| 国产精品视频白浆免费| 屌妞视频久久久久久久| 日韩操啪| 日韩精品大香蕉伊人在线| 午夜乱轮操逼视频免费看| 国产自产22区| 五月丁香色色网| 国产人妻精品一区二区三区秋霞 | 美女干逼2| 97国产高清视频在线观看| 91欧美www| 很很干很很操| 日本免费中文字幕在线| 精品白丝一区| 国产精品久久久视频| 亚洲黄片免费在线播放| 国产后入内射| 天天影视网综合少妇| 欧美成人A√在线一区二区| 成人精品欧洲亚洲| 久久riav中文精品| 欧美色日本| 啪啪资源网| 人妻 欧美亚洲| 丝袜美腿诱惑亚洲欧美视频在线观看 | 十八禁av无码免费网站APP| 性生活无遮挡纯毛片在线看| 天天色综亚洲91污| 97狠狠| 国产吹潮女在线观看| 色情成人五月天| 欧美日韩国产黄色片| 亚洲男人天堂网站| 丝袜狂射91| 亚洲熟妇丝袜在线观看| 五月婷婷啪啪| 色噜噜精品一区二区三| 日本操逼视频在线| 78m成人视线| 破处bbq| 黄资源| 中文字幕55555| 久久99久久99久久99人受| 国语国产操逼伊人AV网| 欧美欧美啪啪视频| 久久超碰97| 欧美狠狠狠| 天堂亚洲精品| 97超碰国产亚洲精品| 亚洲 欧美 综合 91| 午夜天堂精品久久| 日韩中文9| 日韩一级二级| 九九色色| 欧美亚洲影视| 99re8免费高清在线| 四虎视频在线观看| 嗯嗯啊啊视频一区二区三区| 国产成人主播| 久热久操| 0755午夜福利视频| 久久一区二区蜜桃| 粉嫩av平台| www亚洲免费| 粉嫩av在线一区二区| 强奸乱伦Av网| 97色婷婷| 国产农村妇女精品一| 久久久久921| 色色97爱| 色在线综合| 99色天堂| 亚州中文字幕超碰97| 999久久久久久久久| www.av家庭乱伦| 伊人五月天激情| 亚洲五月婷婷| 国产亚洲色婷婷99精品91| 老色鬼成人精品视频下载大在线观看| 亚洲欲| 熟妇色99| 五月天玖玖资源站| 嗯嗯嗯啊啊啊在线免费观看| 亚洲 欧美 小说| 超碰欧美COM| 欧美日韩啪啪电影| 色色婷| 伊人久大| 97在线精品观看视频| 亚洲第一综合| 加勒比色综合| 99久久精品欧美国产| 97天天爽| 欧美一区二区三熟女剧情| 亚洲自拍欧美国产首页网曝 | 亚洲人妻久久久| 天天做天天爱夜夜爽毛片试看| 国产女同视频在线播放| 热久久这里只有精品| 在线情色电影 91大| 中文字幕日韩电影人妻| 一区二区精品日韩欧美在线观看| 国产成人无码a| 偷拍超碰| 黑人美精品 A片| 日本女厕偷拍| 欧美日韩午夜精品一区二区三区| 9久久精品| 日逼97| 欧美色图天堂在线| 三四中文字幕| 中文字幕 一区二区 亚洲无码| 天堂性色| 国产精品情侣啪啪| 天美精品原创av片国产| 亚洲s在线观看| 国产v片在线免费观看| 在线综合 亚洲 欧美中文字幕| 男人天堂网站| 亚洲色图国产另类| 国产久久av| 97国产|免费| 91oumei| 国产在线综合网| 伊香蕉综合久久久久久久噜噜噜| 欧美国产日韩高清在线| 久久97视频| 国产一区二区三区不卡手机在线| 欧美片第一页| 91九色丰满高潮| 日韩av熟女一区二区三区成人| 岛国在线国产| 性欧美| 日韩熟女精品无码专区一区二区 | 天天日天天操天天射河南省| 中文在线久久字幕| 亚洲精品亚洲人成人网| 久久久久9999精品九九九| 99爱在线视频| jizzjizz欧美| 2024年最新色情网站在线观看| 久久人妇| 操死我了啊啊啊| 婷婷五月天激情网| 亚洲综合色图欧美| 艳尻美人妻| 91精品亚洲内射孕妇| 另类欧美色| 天天激色| 密臀AV在线| 丁香五月性| 男人天堂网手机版婷婷| 97资源超碰| 色播五月丁香| 人妻激情偷乱视三区频一区二区| 深喉吞精| 国产97在线 | 亚洲| 国产精品久久久午夜夜伦鲁鲁| 97免费视频网| 欧美亚综合色图| 91最新综合| 午夜天堂网| 美女久久久久久久久久久| 色97国产69香蕉| 欧美亚洲AN| 久久久久元码视频| 后入式视频国产自| 色综合99999| 东京热不卡视频| 亚洲中亚日激情视频| 美女上床网站| 99re欧美| 国产91av在线播放| 久久久久久久久久久免费精品| 大香蕉乱级| 国产AV久久野战精品| 大香蕉婷婷| 91丝袜美女| 亚洲啪啪啪啪视香蕉| 久九九九九九九九热| 日韩欧美大片免费高清啪啪| 中文字幕一区二区三区高清| 日韩乱插| 亚洲成人精品久久久| 天天日美女的B| 五月天我淫我色av| 亚洲一区中文字幕一区| 岛国小电影| 欧美色干| 日韩成人性爱AV| 熟女丰满人妻一区| 激情文学亚洲| 色官网色综合| 18精品一区| 欧美,日韩,中文,另类| 日少妇视频| a级理论午夜日本| 91色图片| 亚洲色图欧美一区二区不卡| 国产超碰| 色天使AV天堂| 国产精品呦一区二区三区| 麻豆黄四叶草网站| 美女黄页网站| 青娱乐日韩无码| 97干天天| 欧美日韩亚洲一区二区在线观看| 中文字幕一区 二区三四五 区日 日骚| 劲爆欧美人妖三区91| 国产综合网站在线播放| 欧美日本天堂| 久久久久9| 麻豆 欧美 日韩| 超碰色综合| 中文字幕老熟妇黄色视频| 九九热精品视频六| 国产亚洲在线观看| 国内毛片四区| 99热色精品| 乱伦熟女论坛| 成人A片男人的天堂| 国产精品久久久久久久久久梁医生| 91亚洲精品青草| 欧美日韩插逼视频| 小骚逼被操的爽不爽| 国产小黄片在线免费观看| 亚洲日韩熟女人妻高清在线| 日本精品五区| 久久久熟妇熟女国产| 一类无码操逼视频| 欧美色97| 久久伊人网视频一区二区三区 | 亚洲欧洲综合视频在线| 加勒比aⅴ| 日本淫色网| 国产AV高清AV无码| 国产1024在线播放| 欧美热图99| 狠狠夜色午夜久久综合在线| 青娱乐久久艹| 12一15性XXXX粉嫩国产| 大干人妻| 亚洲男人的天堂AV| 99视频内射三四| 激情网色| 伊人网免费视频| 啊啊啊97视频| 午夜天堂精品久久久久91| 亚洲乱码国产乱码精网站| 精品九九| 亚洲欧洲色情高清| 精精夜夜| 亚洲精品色| 久久性爱大全| av强奸乱轮| 国产毛片片精品天天看视频| 97超级久久| 精品无码一区二区三区| 亚洲成人妻日韩在线| 欧美色图下一页| 欧美少妇第一页| 不卡九肏| 天天综合香 ld视频| 天天综合网国产| 天天干天天做| 91在线综合网| 日本一区二区三区精品| 色噜噜人妻丝袜AV资源| 久久久999网站| 九九久久久九九| 日韩精品9999| 神马午夜久久久| 在线黄色污污网站| 一本色道久久综合狠狠操| 91综合天天看| 精品人妻一区二区三区免费视频| 欧美性色欧美| 精品一级毛片在线观看| 亚洲好看强奸乱伦| 天堂中文资源在线bt| 久久精品色欧美aⅴ一区二区| www.99色| 色九月综合| 丝袜美腿91| 91青青草| 少妇3P性爱自拍| 啊啊啊啊视频免费| 亚洲日韩乱码中文无码蜜桃臀网站| 后入式福利| V A在线| 影音先锋乱| 极品内射| 大香蕉淫人网| 在线观看中文字幕| 999999精品| 大香蕉一线视频| 啪啪91| 84YTCOM性无码| 97免费视频在线| 久久综合精品一区二区三区| 欧美成年人性爱视频免费观看| 欧美视频第二页| 精品v日韩欧美国产| 91精片| 999久久芭蕾| 亚洲免费精品一区| av国产无码| 精品成人动漫一区二区| 伦在线97| 麻豆国产av网| 亚洲精品一二区| 久热这里只有精品9| 九九九影院| 男人天堂一区二区| 欧美日本国产日韩激情视频| 国产精品白领在线观看| 色偷偷人人玩人人舔人人操人人摸人人爽| 男人天堂.AB| 婷婷五月天成人网| 亚洲国产av中文字幕久久| 性欧美| www. 男人天堂成人在线| 花野真衣| 岛国激情视频软件| 久久 精品| 亚洲中文字幕久久无码精品| 国产久久男人天堂| 久久理论字幕视频| 一区二区 韩日AV| 日本久久天堂| 乱伦图av| 香蕉国产精品麻豆亚洲欧美日韩| 欧中美三级一区二区三区| 亚洲第91页| 日韩美女高潮喷水视频| 日韩一级二级| 我爱大香蕉| 香蕉久久国产AV一区二区| 国产亚洲精品玖玖玖在线观看| 9久在线视频只有精品| 婷婷超| 日韩欧无码一区二区三区免费不卡| 91综合天天看| 91亚洲丝袜| wuyechaopeng| 天天干人妻| 是还免费视频1727我| 日本熟人妻中文字幕在线|...久久国产精品-国产精品_日本一区二区三区中文字幕 | 日韩黄色一区二区三区| 搞中出久久| 成人亚欧免费视频| 欧美综合天天| 美女91AV| 女沟厕偷窥piss小便| 亚洲影院成人| 好爽免费视频| 国产精品福利视频| 91色综合| 中文久久| 免费自拍三级综合| 噜噜噜在线视频| 久久男人精品| 性爱av网站| 夜夜肏2021|