免费国产精品自在自线-91精品国产色综合久久久浪潮-99热久久免费频精品-国产精品国模在线观看-久久亚洲国产精品成人?V秋霞-久久国产一级A片免费播放-亚洲国产欧洲综合97久久-久久国产白嫩美女呻吟高潮

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 兩種來源但讀 → 校驗 → 變換 → 落庫 → 收尾的順序對兩者一樣。?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
返回資訊列表
欧美色97| 69色色视频| 丁香五月手机在线| 五月天激情图片| 久久网思思| 丁香五月天大香蕉啪啪| 五月丁香色| 538午夜激情| 成人片黄网站色大片免费毛片| 激情黄色五月天| 大香蕉狼人久久| 婷色五月天| 五月天伊人日日噜影片AV| 丁香六月婷婷色播| 九九色黄色| 婷婷免费视频| 五月丁香婷婷激情视频| 亚洲行行色色| 久一这里有精品国产| 日韩AV中文字幕在线| 99热这里全都是精品| 毛片毛片毛片毛片| 五月婷婷丁香大陆免费| 色婷婷视频| 99人人干人人| 久久宗合影| 免费无码毛片一区二区A片 | 97干视频在线| 天天爽天天摸| 亚洲欧洲自拍图片专区五月天| 亚洲国产网址| 玖玖婷婷免费| 人妻第九页| 久久九九网| 婷婷久久综合久色| www.sezonghe| 99色嘟嘟精品网站| 久久综合九九| 色优久久| 婷婷成人基地| 这里只有精品视频在线| 99色色网| 五月婷在线| 深夜男女福利刺激影院一区完整| 99热资源在线| 久热中文字幕| 色色婷婷丁香| 婷婷五月天伊人| 六月丁丁香| 五月婷丁香在线视频在线| 激情五月综合色| 五月丁香无码| 九九热超碰| 久操激情| 午夜色色色极品视频| 婷婷在线免费| 亚洲第一色色色色| 五月激情偷拍婷婷| 大陆肏屄视频| 天天狠狠夜夜狠狠2023| 操97免费超级视频| 日韩视频99| 激情六月天| 五月天天天色| 日韩狠狠色| 九九自拍网| 香焦网五月天| 人人播| 成人欧美日韩| 婷婷在线精品| 色五月丁香在线| 99热国产国产| 色婷婷九月| www.亚洲激情| 五月丁香在线观看| 99热综合| 淫视馆av三区| 99黄色在线视频精品熟女| 丁香婷婷91在线观看视频| 狠狠干在线| 草榴视频网| 亚洲成人丁香花| 99爱在线| 婷婷色片| 久er7久热| 激情五月婷婷伊人| 欧美激情综合色综合啪啪五月| 99色视频在线| 超碰在线人妻| 综合99在线| 九九99香蕉在线视频播放| 91人人操人人爱| 久久xxxx| 五月丁香无码| 色色色成人网| 国产精品男人AV不卡| 色吊丝av中文字幕| 99久久久国产大片| 婷婷色色欧美| 特黄三级片| 人妻久久久| 国精产品一区一区三区免费视频| 丁香婷婷婷五月综合色情| 99在线小视频| 五月婷婷久草| 99热都是精品| 色色AV色色色东莞| 色婷婷丁香五月天| 日本九九网| 99啊精典免费视频| 千人斩操逼| 操熟女成人网| 99久热| 99只有精品| www.色五月| 99热观看| 丁香婷五月天| 五月丁香六月欧美综合网站| 9在线9在线婷婷在线国产| 日韩在线视频网站| 天天日夜夜帕| 激情五月天综合| 色五月综合激情网| 丁香婷婷综合激情五月色,开心五月丁香花综合网,激情综合五月亚洲婷婷,五月天 | 中文字幕AV在线| www.99视频| 夜夜嗨一区二区三区直播内容| 97超级操操| 色五月婷婷成人视频| 五月天天久久香| 男妓跪趴把舌头伸进我的嘴巴| 亚洲婷婷激情综合激情999精品| 欧美欧盟性爱网| hd五月婷婷在线| 噜噜色com| 激情综合网激情五月天| 天天天天干| 九九精品re免费视频| 六月丁香婷婷五月天| 操射国产日本| 无码 av电影| 亭亭玉月丁香| 97超级碰碰碰久久久| 人妻22p| 五月丁香六月婷婷综合网站| 亚洲综合五月天婷婷| 五月丁香啪啪婷婷| 色色色在线观看| 七月丁香五月婷婷在线| 激情伊人六| 激情伊人| 香蕉久久国产AV一区二区| 久久伊人五月天| 97夫妻超碰| site:xiongshengzz.com| 欧美色色色色色色| 激情综合99| 五月婷婷激情久久| 色色婷婷丁香五月天| 天天日日夜夜爽。| 欧美日韩国产成人在线| 欧州色色| 五月色亚洲| 天天夜夜爽| 成人国产网站在线免费看| 婷婷成人在线| 少妇2做爰HD韩国电影| 日日夜夜狠狠婷婷色| www.婷婷,com| 综合色播| 亚洲乱码精品久久久久..| 九九碰九九爱97| 97操碰在线视频| 亚洲av无码精品色午夜| 91大神操美女| 五月婷婷欧美| 久久亚洲婷婷| 久久机只有这里精品| 农村熟妇高潮精品A片| 亚洲第一色网站| 日日婷婷不卡| 91妻人人爽人人看片| 狠狠色五月| 亚州在线中文字幕| 色婷婷亚洲五月天| 天天噜日日噜综合无码| 五月婷婷综合激情| 久久这里只有国产视频| 噜噜狠狠色综合久| 91久久久久久| 丁香五月久久综合| 成人短视频在线免费观看| 99国产精品久久久久久久久久久 | AV电影在线播放| 九九综合色| 日本狠狠色| 亚洲 精品 综合 精品| 久草热久草在线视频| 久久五月婷综合网| 97在线/日本| 婷婷九月在线| 亚洲99激情| 国产黄色在线| 殴美综合激情五月天免费视频| 九九丁香社区欧美激情| 五月丁香六月综合激情无码软件亮点| 91视频免费后入强操| 天天日夜夜曹| 开心婷婷五月天综合| 国产亚洲精品AAAAAAA片| 精品人妻伦| 成熟妇人A片免费看网站| 天天色综合色| 婷婷五月丁香综合桃花色网| 伊人青草成人| 亚洲成人丁香花| 欧美丁香五月| 亚洲激情五月婷婷日日| 99啪在线| 五月丁香啪啪| 精品三区影院| 色色五月婷| 色婷婷影视| 日夜夜天天| 日韩久久欧亚| 色色婷婷丁香| 黄色AAAAA| 色五月色五天色情网| 五月天社区| 97婷婷五月| 99ri国产在线| 五月丁香婷久久| 欧美丁香五月97色| 激情五月亚洲| 五月色情婷婷开心五月色情| 久久亚洲天堂| 色一色综合| 久久超视频| 婷婷五月深深的爱| 久久久久久9| 激情婷婷五月天| 第四色五月天| 99视频在线观看欧| 日本高清久久| 国产亚洲色婷婷久久99精品91 www.riverspirits.org www.hnnun.com www.changh | 99免费视频| 色色色色热热| 9月色婷婷| 丰满少妇猛烈A片免费看观看| 99视频在线观看网址| 天天爽夜夜爽夜夜爽精品| 全部老头和老太XXXXX| 亚洲五月停停| 久8色色| 日本一级大片| 六月丁香五月婷婷| 久久精品夜色噜噜亚洲a∨| 最新日本A片| 9l久久久视频| 亚洲国产精品VA在线看黑人| 91久久久久久久| 丁香五月婷婷基地| 婷婷五月天狠狠搞干| 99re6热在线精品视频播放速度| 色操综合| 丁香六月丁香婷婷激情| 久久精品永久免费| 狠狠五月天激情| 国产成人+综合亚洲+天堂| 国产内射婷婷| 婷婷不干网| 色婷婷丁香五月| 五月丁香综合中文| 六月婷婷在线视频| 噜噜久| www.狠狠狠狠| 色丁香在线视频| 五月婷婷性爱| 天天做天天爱天天搞| 激情久久综合网| 97人碰人操| 综合色图区| 婷婷色5月激情网| 丁香五月婷婷88在线| 久青操| 超碰丁香五月| 五月婷婷,六月丁香| 人人色AV| 丁香五月激情宗合| 丁香五月在线视频| 激情五月图| 热99精品视频在线观看| 狠狠五月激情在线| 再次出发二| 亚洲区视频| 五月丁香无码| 亭亭色色五月天| 欧洲S级在线观看| 超碰97色| 91丁香五月| 伊人9草在线观看| 91精品综合久久久久久五月天| 爱99干99| 亚洲欧洲美女在线观| 激情网 久久| 色婷青青| 五月婷中文娱乐综合| 色五月婷婷五月天| 人人操9| 91综合视频丁香| 久久精品国产精品| 91N 一起草| 亚洲啪啪自拍| 99人人操人人爱久久久| 五月天婷婷色在线视频免费观看| WWW.五月天9999| 亚洲综合激| 99精品久久| 五月丁香啪啪啪| 99超在线| 激情亚洲网| www.激情五月| 五月婷色色| 婷婷久久综合| 超碰国产在线播放| 超级97碰碰| 伊人色综合久久久| 婷婷丁香社区网| 激情综合播播| 17.c黄色| 九九干视频| 97干欧美| 国产精产国品一二三在观看| 综合久久六月| 99色婷婷视频| 色色色色色色97| 夜夜躁爽日| 夜夜久久综合网| 五月丁香婷婷综合| 久久丁香综合精品综合| 99久在线精品| 秋霞电影理论| 五月丁香六月婷| 97操碰视频| 久久九色| 欧美操综合| 99久re热| 爱草视频在线| 婷婷五月天激情诱惑| 色五月激情综合网| www.lchjjc.com| 精品亚洲国产成AV人片传媒 | 婷婷五月综合色拍| 婷婷丁香一月| 五月丁香久| 色情综合| 亚洲视频无| 怡红院 久久| 新久久五月天激情| 五月亭亭六月天| 日本人妻A片成人免费看片| 成人视频网| 激情综合另类| 亚洲激情图文小说| 久久婷丁香五月| 熟女色色一区二区| 99综合视频一体| 天天橾日日橾夜夜橾17| 激情视频网址| 久久精品日| 九九热这里只有精品556| 99热在线免费| 色墦五月丁香| 人妻激情网| 亚洲艹网| 五月丁香综合激情网| 五月丁香成人网| 91打屁股视频网站| 男人的天堂五月丁香| 久久婷婷综合五月天| 日本在线观看aaa 99| 激情丁香五月天综合| 99爱视频在线播放| 高潮毛片又色又爽免费| 欧美极品999| 日日操夜夜骑| 国产首页在线| 久久网站免费亚洲| 激情六月婷婷| 99碰| 五月丁香激情婷婷| 五月天偷拍| AV在线大香蕉| 久久99综合网| 亚洲婷婷丁香五月| 管管補管管紱| 五月天久久久| 激情五月天婷婷直播| 色屌丝中文字幕| 2025神马午夜福利| 日日操,日日爽| 婷婷九月丁香| 色色色婷婷五月天| 偷拍91九色| 大香蕉欧美在线| 成人性爱精品视频| 新激情五月天| 欧美婷婷五月| 五月美女婷婷风骚| 欧美成人网婷婷综合在线| 婷婷丁香色五月| 婷婷五月天亚洲综合| 六月丁香色婷婷| 亚洲成人AV高清字幕| 激情五月图| 九月婷婷综合| 婷婷丁香五月天哟啪| 色婷婷a v| 婷婷爱五月| 五月WWW| 7EzOBIhNq85TO| 五月天激情网图片 - 百度| 97自拍视频在线| 91成人电影| 五月丁香婷草| 久9视频| 五月色婷婷影院| www.sebowuyue| 最新va在线播放| 欧美日韩国产成人在线| 五月天狠狠| www狠狠爱com| 丁香五月综合激情性爱| 久久婷婷五月综合色奶水99啪| 五月天成人在线视频网站| 成人色图情色成人网 www.5b5b5bcom 五月天 | 射婷婷中文字幕| 天天做天天爱天天摸| 综合网天天| 六月婷婷深深爱| 婷婷六月天| www.天天干.com| 亚洲色婷婷| 五月综合激情图片| 日本久碰| 婷婷伊人综合中文字幕| 丁香婷婷五月激情综合| 亚洲综合网在线| 色五狠狠| 五月婷啪啪| 久久九九99| 九九激情网| 国产精产国品一二三在观看| 丁香五月天色婷婷| 五月天色色网站| 99综合免费视频| 精热在线综合网| 1024操逼| 天天插天天插| 精品人妻伦| 五月丁香综合色婷婷| 五月丁香啪啪激情| 婷婷综合av| 九九re精品视频在线观看| 任你草| 五月天电影网| 丁香五月天电影| 99热在线播放| 久久婷婷五月激情网站| 九九综舍久久| 免费看欧美成人A片无码 | 色婷| 欧美A级成人婬片免费看理论| 欧美人妻一区二区| 五月丁香久人妻中文| 婷婷五月天97干| 丁香五月婷婷AV在线| av在线免费播放| 熟妇内谢69XXXXXA片| 久久久久人无码人妻| 超碰不卡在线| 中文字幕精品无码一区二区| 久草五月婷婷| 色五月婷婷内射| 丁香九月久久| 91传媒无码人妻精| 丁香成人五月天| 亚洲99精品欧美一区| 性色人人爽| 香港九九六区八区99| 99热这里只有精品3| 日日操天天| 欧美婷婷六月丁香综合色| 婷五月天影院| 五月天色五月| 久热超碰91| 色亚洲婷婷| 色吧婷婷| 我想看国产大学生口爆吞精的视频| 操碰97| 99国产视频网| 丁香五月综合图片在线观看| 色欲婷婷五月天| 日韩ww| www.五月丁香| 五月婷婷五月天天| 伊人春天av| 久啪欧美| 色色9 9| 欧美五月婷婷| 天天天在线观看| 五月丁香在线偷拍视频| 天天激情综合| 日韩成人电影AV| 婷婷综合av| 99热在线观看| 超碰99在线观看| PORNY九色9l自拍视频成人| 情涩婷婷五月天| 亚洲在线操| 五月激情婷婷四射| 色欲久久99精品久久久久久| 国产乱人偷精品人妻A片| 激情九月婷婷| 激情五月婷婷色播网| 五月在在观看| 99高级会所久久| 99热日韩| 91一起操| 狠狠色丁香久久久婷| 中文精品在| 色综合色婷色基地| 中文字幕天天干| 欧美情色电影一区二区| 韩日另类| 婷婷97色| 婷婷色网址| 极品精品一区二区三区在线| 无码AV免费精品一区二区三区| 五月婷婷六月天| 思思热在线| 五月丁香六月在线| 亚洲欧美丁香五月天亚洲欧美| 欧美色性色好| 五月天丁香久久| 激情婷婷六月天| 亚美欧色影院| 日日干天天| 日本人人xxx| 99爱视频在线观看这里只有精品| 五月婷婷69| 99免费| 深爱激情六月| 开心婷婷五月天激情网| 婷婷天天婷婷天天澡| 九九热最新地址| 亚洲天天| www九九热| 丁香五月婷婷基地| 欧美性色A片免费免费观看的| 激情六月天| 俺去也婷婷| 九九九激情综合| 婷婷丁香18| 超碰99成人在线| 人妻中文字幕网| 久Se视频在线观看| 天天插天天玩天天干| www.minyis.com【JT】实力收量可预付TG@LXSPSW8| 在线区区区| 天天操夜夜夜拍拍拍| 伊人婷婷五月天| 丁香六月婷婷开心| 日韩av网址大全| 日日噜狠狠色综合久| 色婷| 五月天电影网| 久久sp免费视频| 狠狠人妻色综合| 欧美色五月| 亚洲综合新99视频| 激情九九这里只有精品| 色欲影香| 免费看欧美成人A片无码| 婷色影院| 色婷婷五月影视| 99久热在线精品| 久久亚洲婷婷综合色五月| 丁香激情婷婷网| 伊人网啪啪| 五月天婷婷久久视频| 日韩av变天就操逼不卡区| 丁香婷婷五月综合欧美另类| xxxx久| 精品五月丁香| 大香蕉啪啪啪啪啪啪| 午夜天堂啪啪| 亚洲最大五月天成人网| 久久精品99| 蜜乳av一级av| 久久久久久久97| 亚洲无码成人性爰网| 五月天激情美女久久| 久青操| 丁香五月综合| 97碰碰九九视频| 五月婷婷色色| 婷婷五月丁香在线视频| 亚洲综合激情五月久久| 操日本三片99| 亚洲五月天狠狠| 97丁香婷婷| 免费无码毛片一区二区A片| 大香伊人婷婷影院| 日本五月婷婷久久久六月丁香| 蜜桃五月天| 婷婷精品| 五月天丁香看婷婷| 婷婷六月色丁香视频在线观看| 色婷婷久久| 成人无码髙潮喷水A片| 开心激情网五月天| 久久精品99| 91丨九色|PRNY熟妇| 欧美美女国产日韩一区二区久 | 国产韩日亚洲美州欧亚综合在线| 中文乱子伦视频| 99色在线观看| 激情伊人网| 9999色色色色| 欧美婷婷| 99热这里是精品| 深爱五月激情| 婷婷五月丁香激情| 久久久久久天天日天天爱| 人人摸人人| 婷婷五月天97干| www.激情在线| 六月婷婷色综合| 丁香五月123| 亚洲国产色色| www久视频com| 视频免费精品免费精品免费精品免费精品免费精品免费精品免费99 | 视频这里只有精品16| 婷婷色在线| 久久婷婷综合国产| 夜夜操夜夜操| 婷婷五月天丁香久久| 亚洲日韩26uuu| 五月丁香综合啪啪| 久思思热视频在线观看| 97精品自拍| 都市激情亚洲| 噜噜狠狠色综合久| 婷婷刺激综合| www.99热在线| 丁香五月婷婷欧美激情-中文天堂最新版在线观看 | 色色吧综合| 99九九在线视频| 久久五月天激情婷婷| 人妻在线观看视频| 久久九精品| 日比网免费国产| 狠狠色综合777| 亚洲亚洲人成综合网络| 深爱激情网婷婷| 成人午夜视频精品一区| 甈吧vv| 亚洲激情四射色| 色久激情在线| 色吊丝av中文字幕| 66色在线日韩| 国产免费一区二区三区三州老师F1F1.CC| 久久这里都是精品| 大香蕉人在线65| 色婷婷丁香五月| 99热超碰人| 五月停停激情网| 午夜激情久久| 天天肏高清在线| 成人av在线网站| 综合网啪| 欧美婷婷| 色婷婷基地 | www.粉嫩av.com| 五月香婷婷| 亚洲色vA| 久久丁香九| 久久与婷婷| 五月婷婷大香蕉| 激情丁香五月婷婷| 激情五月婷婷在线区| 国产一区二区av免费| 婷婷五点亚洲| 色在线99| 久婷五月| 婷婷五月天亚洲激情戏精品| 强奸幻女毛片| 激情九月综合| 综合热无码| 99资源人人| 色综合久久天天综合网| 激情五月婷婷欧美极品| 欧美三级韩国三级日本三斤| 99成人| 久久久久久xxxxx| 午夜丁香| 天天狠天天叉| 色情综合网| 91在线操逼视频| 色激情五月天| 玖月婷婷爱丁香| 色域五月丁香| 色~性~乱~伦~噜| 天天狠狠色噜噜| 亚洲顶级VA在线观看-高清完整版在线影院观看-S022AV | 伊人网色婷婷五月天| 五月婷婷丁香五月| 九九九九精品精| 婷婷五月天久久久| 99热只有精品综合| 亚洲天堂AV综合网| 成人在线精品| 激情性五月天免费小说视频| 五月天婷婷基地| www.99.色| 99视频自拍| 夜夜操,天天撸| 伊人婷婷五月天| 玖久久网站| 91丨九色丨大屁股| 久久免费婷婷视频| 人人色人人摸人人看| 丁香五月综合激情久久潮喷| 五月色色色| 久久最新色色色| 日本全黄一级999| 激情综合五| 亚洲五月天婷婷在线| 91热99| 久久久久久久久久久jjjj| 五月婷婷AV| 激情综合激情五月一起草| 99热这里只有99| 日本精品九九九| 五月天丁香色色| www夜夜操| 天天日天天插| www.夜夜.com| 欧美婷婷六月丁香综合色连续高潮抽搐| 岛国资源站| 99久久99综合| 久久久久久人妻| 欧洲一区二区| 人妻内射视频| 日日肏夜夜干| 五月婷婷在线视频免费观看| 亚洲精品在线视频| 日韩aⅴ视频| 婷婷五月天av| 婷婷五月丁香超碰| 五月丁香婷爱在线| 五月丁香九九九综合| 婷婷五月天伊人在线| 碰97久久| 久久的爱大香蕉| 热99色| 成人做爰高潮A片免费视频| 99视频久久| 人妻视频在线| 婷色五月天| 久艹伊| 99久操视频| 乱岳熟女50岁| 91啪啪| 天天干一干| 五月丁香婷婷综合| jizzdr| 性天天中文网| 五月天激情日色在线| 激情六月五月婷婷综合网| 色情综合网| 开心五月综合激情网| 9 1在线视频| 五月天精品| 超碰99在线观看| 天天日天天插| 欧美99| 五月婷婷丁香六月| 91九色首页| 久/久精品99看9| 色色色色综合网| 日本色狠狠| 五月激情综合网| 国产成人亚洲综合A∨婷婷| 久久综合激情婷婷激情| www.99成人视频| 久久久精品色色色| 五月天开心激情综合网| 人人摸人人| 婷婷五月六月| 天天色天天操天天射| 九九热大香蕉| 九九综合色| 五月天成人免费视频| 一级黄色影片| 久久精品国产精品| 婷婷天堂综合| 九月婷婷丁香| 人妻久久久久久久久久| 99re思思久久| 激情综合五月| 亚洲精品国产成人AV在线| 这里只有精品视频99| 97人人超| 91久久网站| 中文字幕在线日亚州9| 成年人丁香五月| 五月色色网| 天堂中文国产| 欧美欧盟性爱网| 色婷婷九月| 狠狠另类视频| 五月之婷婷| 99热99这里只有精品| 色99色| 激情五月婷| 丁香六月婷婷久久综合| 老妇六区| 大香蕉久久婷婷精品综合| 欧美色色色色色| 新99思思视频| 婷婷开心六月| 99综合免费视频| 超碰99在线| 丰满少妇乱A片无码| 9热在线视频精品| 六月婷婷激情| 99热精品一区| 色婷婷综合影院| 另类视频在线| 一级性感毛片| 桃色五月婷婷| 亚洲最大五月天成人网| 久热91精品| 97在线观视频免费观看| 婷婷99丁香| 中文字幕av网站| 久久激情网| 五月天激情婷婷丁香| 久热这里只有精品视频6| 99视频激情四射| 婷婷九月| 亚洲第一成人AV| 操操国产| 婷婷亚洲在线| 五月丁香影院| 日本综合久久| 激情小说婷婷| 人人操av| 月丁香久久久| 色色色综合视频| 欧美久久网| 婷婷在线网| 午夜天堂啪啪| 色吧五月婷婷| 亚洲黄色影视| 99男人的天堂| 就爱操www com| 日韩在线视频中文字幕| 牛牛澡牛牛爽| 天天日天天插天天操| 六月亭亭久久综合激情| 99成人在线观看| 日韩视频99| 综合超碰熟| www.婷婷五月天啪啪| www.yw色| 九月婷婷综合色干| 四色 爱 婷婷 精品 亚洲 五月天| 精品久久这里热66| 9+1视频网址| AV在线资源| 日日操天天操| 琪琪色五月婷婷老师| 永久的网站AAAA| www.激情| 久久电影五月天丁香电影| 丁香九月激情| 日本爆乳片手机在线播放| 牛牛热这里只有jingpin| 日本三级大片| 亚洲激情免费视频观看| 在线观看国产高清视频免费网站 | 91精品丝袜久久久久久| 色五月成人| 热99.com婷婷| 丁香五月婷婷少妇| 伊人网碰碰| 色色五月天激情| 在线中文字幕av| 色五婷婷在线视频| 国产精品天天狠天天看| 99日逼视频| 人妻啪啪啪| 色综合视频在线| 久久五月天激情视频| 婷婷色综合| 99成人网一区| 婷综合| 欧美激情中文字幕| 五月婷婷开心五月| 九九精品系列| 五月婷婷久久爱| 国产亚洲精品久久久久久郑州| www色色色com| 丁香五月激情婷婷| 日本三级韩三级99久久| 五月丁香性爱| 热99国产精品| 我爱大香蕉| 久久婷婷91| 九九色图| 中文字幕永久免费| 天天干电影| 99视频这里只有免费精品| 怡红院视频| 青草青草久热这里只有精品| 激情五月婷婷网| 亚洲五月激情| 伊人玖玖婷婷| 五月婷婷色播| 五月丁香啪啪综合| 成人 在线 日韩| 99久久久免费| 五五月丁香花激情综合网| 九九在线精品| 丁香花五月天| 丁香五月婷婷图片综合| 激情五月婷婷综合秋霞| 人人爱人人添| 啪啪日本欧美| 久久人妻www| 色婷婷色综合激情91| 日韩av在线免费观看| 日本美女上人| 人妻精品一区二区三区| 色婷婷视频| 1级欧美日韩| 色噜噜五月天| 久久综合激情| 九九热精品| 丁香六月天色婷婷| 大香久久综合网| wwwC0maV五月花| 熟女色色一区二区| 婷婷激情视频欧美视频自拍视频欧美剧| ai97re99一本| 狼人婷婷久久| 亚洲激情综合色站| 国产av一区二区三区| 丁香六月婷婷综合在线| 国产精品人妻在线网址| 91碰在线| 亚洲综合新99视频| 国产精品成人网址| 熟女网站久久| 久久综合热17c| 色五月综合网站| 2017狠狠干| 亚洲中文无码成人| 婷婷福利影院| 人人操日| 99热这里有精品24| 大香蕉七区| 99精品久久| 激情婷婷综合五月少妇| 啪啪婷婷五月天激情| 亚洲精品一区无码A片| 日日爽日日爽| 91丨九色|PRNY熟妇| 热久久99热欧美国产亚洲| 婷婷五月天手机版视频| 99内射视频| 久久香蕉影院| 丁香婷五月天开心六月| 噜噜干日本| 7EzOBIhNq85TO| 丁香 亚洲 久久| 色五月婷婷开心| 啪啪操操| 大香蕉久| 亚洲成人婷婷| 美女亚洲五月丁香| 九九九九九九综合| 色爱综合网| 天天操狠狠操| 丁香五月婷婷啪啪| 久久五月热| 婷婷五月天久久| 激情五婷网| 色色无码日韩| 激情啪啪五月天| 青青草原伊人网| 2023天天日夜夜爽| 激情四射网| 99热在线极品极品| 中文AV网站| 色播五月网| 五月丁香激情综合网官网| 婷婷五月天Av| 99caobi| 国产精品VIDEOSSEX久久发布| 五月停停999| 五月天激情网页| 亚洲色婷婷色| 久久久婷婷五月亚洲97号色| 久久精品无码一区| 激情综合网五月| 天天舔天天爽| 六月丁香五月激情婷婷| 九九国产精视频| 五六月婷婷久久| 九九色综合| 五月婷婷久久久| 日本九婷婷| 亚洲 五月 婷婷 成人| 婷婷久久五月天亚洲欧美国产日韩在线观看 | 狼友超碰| 97操碰日本女人| 99国产精品白浆在线观看免费| 色综合久久久久| 开心五月婷婷| 小视频久久久aaa| 天天干天天操天天上| 婷婷五月激情热播| 激情久久久久久| 99九九中文字幕视频| 日韩久久系列| 激情内射人妻1区2区3区| 天天狠狠夜夜狠狠2023| 99热主页日本| RenRenSe在线视频网站| 丁香五月六月久久综合| 1024在线观看免费视频| 五月婷狠狠| 狠狠干在线| 99久久久久| 一区二区免费看| 操操操AV| 婷婷丁香五月亚洲综合网在线视频观看| AV天堂淫乩| 色五月婷婷五月久久| 熟女激情网| 日本人妻丁香婷婷久久寝取熟女五月| 996热| 狠狠色婷婷在线| 97精品综合| 国产精品久久久99视频| 五月天大香蕉| 超碰在线国产| 伊人久久艹| 啪啪啪综合网| 色婷婷狠狠爱| 五月丁香综合啪啪| 久久性爱视频| 九九性视频| 超碰二区| 日本三级日本三级99| 日日噜人人人做人| 综合五月丁香久久| 日韩无码专区| 色五月首页| 五月婷俺去也| 99热这里只有精品21| 天天摸天天爽| 嫩草综合网| 婷婷六月久久| dingxiangtingtingliuyue| 丁香五月,激情五月,深爱五月| 这里只有精品9| 婷婷色五月综合| 丁香五月婷婷视频| 色婷婷偷拍| 午夜五月天| 亚洲va综合va国产va中文| 五月婷激情影院| 91色久| 婷婷五月成人| 九九婷婷五月天| 亚洲天堂制| 超碰在线观看成人视| www.91.com黄| 都市激情久久| 婷婷五月天伊人网在线观看视频| 五月丁香婷婷激激激综合网色播| 五月婷婷基地| 色婷婷久久| 婷婷亚洲天堂| 亚洲精品无人区| 久久99免费视频网站| 美国不卡视频| 99色综合网| AAA久久| 天天操天天操| 婷婷五月激情视频| 99九九视频| 性生活视频98791| 亚洲精品视频在线播放| 9精品久久999| 国产黄色av| 久久9精品| 亚洲五月天伊人| 99久在线精品99re8| 99久久99九九九99九他书对| 久久免费精彩视频| 成人一区在线观看| 天天久久人人| 亚洲天堂aaa| 99热最新| 在线超碰免费| 五月婷婷六月天| 色综合网综合| 国产精品成人AV在线| 无码少妇高潮喷水A片免费| 99ri视频在线观看| 婷婷五月成人| 五月开行婷婷色五月| 久婷| 色色色.COM| 色综合com| 久久艹 五月天| 色婷婷亚洲婷婷| 丁香五月久久综合| 色婷视频| 日韩野外 无套| 国产xxxxx在线观看| 日日综合网| 亚洲成人免费在线| 日本在线视频看se99| 久久婷婷激情五月天一区二区| 啄木鸟丝袜美女福利视频| 人人操AV| 超碰在线日夜| 激情五月婷黄版| 五月色综合网| 日韩色色色色| 99热91| 综合在线色婷婷| 久久视频在线视频| 96精品久久久久久久久| www久热com| 99热97| 91日韩美女被插视频| 丁香婷婷色五月天| 99精品视频免费观看| 激情九色| 开心五月激情五月丁香五月婷婷| 99久久极情精品一区| 色五月婷婷伊人| 婷婷五月天性| 激情综合五月| 97资源欧美日韩大香蕉超碰一区| 婷婷激情综合色五月久久,色婷婷丁香花,丁香婷婷五月情天,久久婷婷五月综合色 | 五月丁香好婷婷A片网| 97自拍视频在线| 婷婷六月天| .操區COm| 狠狠做深爱婷婷久久综合一区| 婷婷五月天成人视频| 日本www五月婷婷| 在线中文字幕视频| 人人爽欧美婷婷久久久五月丁香| 人人做人人看人人摸| 五月丁香成人网| 久热欧美| 丁香五月激情网| 99九精品| 精品国产va久久久| 99热在线观看| 激情丁香久久| 婷婷丁香久久| 五月激情网站| 婷婷五月激情的图片| 亚洲妇女熟BBW| 啪啪一区| 六月婷婷香蕉| 五月情色天| 欧美一级a | 五月天婷婷青青| 二色av| 看黄的网站18禁| 丁香婷婷激情| 超碰99资源站| 久热精品视频| 婷婷五月花.97| 亚洲综合狠狠艹| 亚洲妇女熟BBW| 色五月天天| 99精品偷自拍| 好吊操这里只有精品| 色色色色综合| 五月天婷综合| 婷婷 色 丁香 夜| 97碰碰视频| 色婷婷丁香五月| 久热AA| 啪啪啪综合网| 9+1视频网址| 九九在线视频| 综合99久久天天综合| 五月天操逼网| 久草五月婷婷| 九九热AV| 这里只有精品视频222| 五月丁香综合在线| 天天爽夜夜爽夜夜爽精品| 超碰av在线| 狠狠干总合| 亚洲性爱AV在线| 丁香五月婷婷色| av人人操| 国产97色在线 | 日韩| 丝袜激情网| 91精品久久久久| WWW.婷婷五月天.COM| 中文字幕AV在线| 国庆精品久久| 日本欧美成人片AAAA| 99精品在线观看| 五月丁香欧美综合免费视频| 韩日AV片| 激情丁香五月| 开心婷婷五月天综合| 亚洲中文字幕在线观看| 天天狠狠色| 久久九九九九| 婷婷开心五月| 九九九九国产| 人妻av在线| 色性日本| 激情图片99| 色色色无码| 五月婷婷久久综合| 亚洲无码影片| 五月天丁香婷| 九九精品综合| 丁香六月激情| 婷婷五月综合激情免费| 婷婷六月视频| 97色色视频| 亚洲综合激情五月久久| 精品一二三区久久AAA片| 综合一本道| 久久婷婷成人| 久久精品国产AV一区二区三区 | 一级操逼内射在线视频| 五月天婷婷操逼视频| 亚洲在线操| 婷婷五月丁香六月伊人网| 婷婷大香焦| 综合伊人久久| AV 3P| www91色网站| 99视频在线精品| 美女丁香五婷婷|