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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

正反案例介绍SOLID原则

發(fā)布時(shí)間:2023/12/4 编程问答 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 正反案例介绍SOLID原则 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一.概述

  SOLID五大原則使我們能夠管理解決大多數(shù)軟件設(shè)計(jì)問題。由Robert C. Martin在20世紀(jì)90年代編寫了這些原則。這些原則為我們提供了從緊耦合的代碼和少量封裝轉(zhuǎn)變?yōu)檫m當(dāng)松耦合和封裝業(yè)務(wù)實(shí)際需求的結(jié)果方法。使用這些原則,我們可以構(gòu)建一個(gè)具有整潔,可讀且易于維護(hù)的代碼應(yīng)用程序。

  SOLID縮寫如下:  

  • SRP? 單一責(zé)任原則

  • OCP 開放/封閉原則

  • LSP? 里氏替換原則

  • ISP? ?接口分離原則

  • DIP? ?依賴反轉(zhuǎn)原則

  1.單一責(zé)任原則SRP?

   ? ?一個(gè)類承擔(dān)的責(zé)任在理想情況下應(yīng)該是多少個(gè)呢?答案是一個(gè)。這個(gè)責(zé)任是圍繞一個(gè)核心任務(wù)構(gòu)建,不是簡(jiǎn)化的意思。通過暴露非常有限的責(zé)任使這個(gè)類與系統(tǒng)的交集更小。

    (1) 演示:違反了單一責(zé)任原則,原因是:顧客類中承擔(dān)了太多無關(guān)的責(zé)任。 ?

/// <summary>
/// 顧客類所有實(shí)現(xiàn)
/// </summary>
public class Cliente
{
public int ClienteId { get; set; }
public string Nome { get; set; }
public string Email { get; set; }
public string CPF { get; set; }
public DateTime DataCadastro { get; set; }

public string AdicionarCliente()
{
//顧客信息驗(yàn)證
if (!Email.Contains("@"))
return "Cliente com e-mail inválido";

if (CPF.Length != 11)
return "Cliente com CPF inválido";

//保存顧客信息
using (var cn = new SqlConnection())
{
var cmd = new SqlCommand();

cn.ConnectionString
= "MinhaConnectionString";
cmd.Connection
= cn;
cmd.CommandType
= CommandType.Text;
cmd.CommandText
= "INSERT INTO CLIENTE (NOME, EMAIL CPF, DATACADASTRO) VALUES (@nome, @email, @cpf, @dataCad))";

cmd.Parameters.AddWithValue(
"nome", Nome);
cmd.Parameters.AddWithValue(
"email", Email);
cmd.Parameters.AddWithValue(
"cpf", CPF);
cmd.Parameters.AddWithValue(
"dataCad", DataCadastro);

cn.Open();
cmd.ExecuteNonQuery();
}

//發(fā)布郵件
var mail = new MailMessage("empresa@empresa.com", Email);
var client = new SmtpClient
{
Port
= 25,
DeliveryMethod
= SmtpDeliveryMethod.Network,
UseDefaultCredentials
= false,
Host
= "smtp.google.com"
};

mail.Subject
= "Bem Vindo.";
mail.Body
= "Parabéns! Você está cadastrado.";
client.Send(mail);

return "Cliente cadastrado com sucesso!";
}
}

?   

 (2) 解決方案,使用單一責(zé)任原則,每個(gè)類只負(fù)責(zé)自己的業(yè)務(wù)。

/// <summary>
/// 顧客實(shí)體
/// </summary>
public class Cliente
{
public int ClienteId { get; set; }
public string Nome { get; set; }
public string Email { get; set; }
public string CPF { get; set; }
public DateTime DataCadastro { get; set; }

/// <summary>
/// 顧客信息驗(yàn)證
/// </summary>
/// <returns></returns>
public bool IsValid()
{
return EmailServices.IsValid(Email) && CPFServices.IsValid(CPF);
}
}

/// <summary>
/// 保存顧客信息
/// </summary>
public class ClienteRepository
{
/// <summary>
/// 保存
/// </summary>
/// <param name="cliente">要保存的顧客實(shí)體</param>
public void AdicionarCliente(Cliente cliente)
{
using (var cn = new SqlConnection())
{
var cmd = new SqlCommand();

cn.ConnectionString
= "MinhaConnectionString";
cmd.Connection
= cn;
cmd.CommandType
= CommandType.Text;
cmd.CommandText
= "INSERT INTO CLIENTE (NOME, EMAIL CPF, DATACADASTRO) VALUES (@nome, @email, @cpf, @dataCad))";

cmd.Parameters.AddWithValue(
"nome", cliente.Nome);
cmd.Parameters.AddWithValue(
"email", cliente.Email);
cmd.Parameters.AddWithValue(
"cpf", cliente.CPF);
cmd.Parameters.AddWithValue(
"dataCad", cliente.DataCadastro);

cn.Open();
cmd.ExecuteNonQuery();
}
}
}

/// <summary>
/// CPF服務(wù)
/// </summary>
public static class CPFServices
{
public static bool IsValid(string cpf)
{
return cpf.Length == 11;
}
}

/// <summary>
/// 郵件服務(wù)
/// </summary>
public static class EmailServices
{
public static bool IsValid(string email)
{
return email.Contains("@");
}

public static void Enviar(string de, string para, string assunto, string mensagem)
{
var mail = new MailMessage(de, para);
var client = new SmtpClient
{
Port
= 25,
DeliveryMethod
= SmtpDeliveryMethod.Network,
UseDefaultCredentials
= false,
Host
= "smtp.google.com"
};

mail.Subject
= assunto;
mail.Body
= mensagem;
client.Send(mail);
}
}

/// <summary>
/// 客戶服務(wù),程序調(diào)用入口
/// </summary>
public class ClienteService
{
public string AdicionarCliente(Cliente cliente)
{
//先驗(yàn)證
if (!cliente.IsValid())
return "Dados inválidos";

//保存顧客
var repo = new ClienteRepository();
repo.AdicionarCliente(cliente);

//郵件發(fā)送
EmailServices.Enviar("empresa@empresa.com", cliente.Email, "Bem Vindo", "Parabéns está Cadastrado");

return "Cliente cadastrado com sucesso";
}
}
  2. 開放/封閉原則OCP

    類應(yīng)該是可以可擴(kuò)展的,可以用作構(gòu)建其他相關(guān)新功能,這叫開放。但在實(shí)現(xiàn)相關(guān)功能時(shí),不應(yīng)該修改現(xiàn)有代碼(因?yàn)橐呀?jīng)過單元測(cè)試運(yùn)行正常)這叫封閉。

    (1) 演示:違反了開放/封閉原則,原因是每次增加新形狀時(shí),需要改變AreaCalculator 類的TotalArea方法,例如開發(fā)后期又增加了圓形形狀。

/// <summary>
/// 長(zhǎng)方形實(shí)體
/// </summary>
public class Rectangle
{
public double Height { get; set; }
public double Width { get; set; }
}

/// <summary>
/// 圓形
/// </summary>
public class Circle
{
/// <summary>
/// 半徑
/// </summary>
public double Radius { get; set; }
}

/// <summary>
/// 面積計(jì)算
/// </summary>
public class AreaCalculator
{
public double TotalArea(object[] arrObjects)
{
double area = 0;
Rectangle objRectangle;
Circle objCircle;
foreach (var obj in arrObjects)
{
if (obj is Rectangle)
{
objRectangle
= (Rectangle)obj;
area
+= objRectangle.Height * objRectangle.Width;
}
else
{
objCircle
= (Circle)obj;
area
+= objCircle.Radius * objCircle.Radius * Math.PI;
}
}
return area;
}
}

?    (2) 解決方案,使用開放/封閉原則,每次增加新形狀時(shí)(開放),不需要修改TotalArea方法(封閉)

  /// <summary>
/// 形狀抽象類
/// </summary>
public abstract class Shape
{
/// <summary>
/// 面積計(jì)算
/// </summary>
/// <returns></returns>
public abstract double Area();
}

/// <summary>
/// 長(zhǎng)方形
/// </summary>
public class Rectangle : Shape
{
public double Height { get; set; }
public double Width { get; set; }
public override double Area()
{
return Height * Width;
}
}

/// <summary>
/// 圓形
/// </summary>
public class Circle : Shape
{
public double Radius { get; set; }
public override double Area()
{
return Radius * Radius * Math.PI;
}
}

/// <summary>
/// 面積計(jì)算
/// </summary>
public class AreaCalculator
{
public double TotalArea(Shape[] arrShapes)
{
double area = 0;
foreach (var objShape in arrShapes)
{
area
+= objShape.Area();
}
return area;
}
}
  3.里氏替換原則LSP

    這里也涉及到了類的繼承,也適用于接口。子類可以替換它們的父類。里氏替換原則常見的代碼問題是使用虛方法,在父類定義虛方法時(shí),要確保該方法里沒有任何私有成員。

    (1) 演示:違反了里氏替換原則, 原因是不能使用ReadOnlySqlFile子類替代SqlFile父類。

/// <summary>
/// sql文件類 讀取、保存
/// </summary>
public class SqlFile
{
public string FilePath { get; set; }
public string FileText { get; set; }
public virtual string LoadText()
{
/* Code to read text from sql file */
return "..";
}
public virtual void SaveText()
{
/* Code to save text into sql file */
}
}

/// <summary>
/// 開發(fā)途中增加了sql文件只讀類
/// </summary>
public class ReadOnlySqlFile : SqlFile
{
public override string LoadText()
{
/* Code to read text from sql file */
return "..";
}
public override void SaveText()
{
/* Throw an exception when app flow tries to do save. */
throw new IOException("Can't Save");
}
}


public class SqlFileManager
{
/// <summary>
/// 集合中存在兩種類:SqlFile和ReadOnlySqlFile
/// </summary>
public List<SqlFile> lstSqlFiles { get; set; }

/// <summary>
/// 讀取
/// </summary>
/// <returns></returns>
public string GetTextFromFiles()
{
StringBuilder objStrBuilder
= new StringBuilder();
foreach (var objFile in lstSqlFiles)
{
objStrBuilder.Append(objFile.LoadText());
}
return objStrBuilder.ToString();
}

/// <summary>
/// 保存
/// </summary>
public void SaveTextIntoFiles()
{
foreach (var objFile in lstSqlFiles)
{
//檢查當(dāng)前對(duì)象是ReadOnlySqlFile類,跳過調(diào)用SaveText()方法
if (!(objFile is ReadOnlySqlFile))
{
objFile.SaveText();
}
}
}
}

?    (2) 解決方案,使用里氏替換原則,子類可以完全代替父類

  public interface IReadableSqlFile
{
string LoadText();
}
public interface IWritableSqlFile
{
void SaveText();
}

public class ReadOnlySqlFile : IReadableSqlFile
{
public string FilePath { get; set; }
public string FileText { get; set; }
public string LoadText()
{
/* Code to read text from sql file */
return "";
}
}


public class SqlFile : IWritableSqlFile, IReadableSqlFile
{
public string FilePath { get; set; }
public string FileText { get; set; }
public string LoadText()
{
/* Code to read text from sql file */
return "";
}
public void SaveText()
{
/* Code to save text into sql file */
}
}


public class SqlFileManager
{
public string GetTextFromFiles(List<IReadableSqlFile> aLstReadableFiles)
{
StringBuilder objStrBuilder
= new StringBuilder();
foreach (var objFile in aLstReadableFiles)
{
//ReadOnlySqlFile的LoadText實(shí)現(xiàn)
objStrBuilder.Append(objFile.LoadText());
}
return objStrBuilder.ToString();
}

public void SaveTextIntoFiles(List<IWritableSqlFile> aLstWritableFiles)
{
foreach (var objFile in aLstWritableFiles)
{
//SqlFile的SaveText實(shí)現(xiàn)
objFile.SaveText();
}
}
}
  4.接口分離原則ISP

    接口分離原則是解決接口臃腫的問題,建議接口保持最低限度的函數(shù)。永遠(yuǎn)不應(yīng)該強(qiáng)迫客戶端依賴于它們不用的接口。

    ?(1)? 演示:違反了接口分離原則。原因是Manager無法處理任務(wù),同時(shí)沒有人可以將任務(wù)分配給Manager,因此WorkOnTask方法不應(yīng)該在Manager類中。

   /// <summary>
/// 領(lǐng)導(dǎo)接口
/// </summary>
public interface ILead
{
//創(chuàng)建任務(wù)
void CreateSubTask();
//分配任務(wù)
void AssginTask();
//處理指定任務(wù)
void WorkOnTask();
}

/// <summary>
/// 團(tuán)隊(duì)領(lǐng)導(dǎo)
/// </summary>
public class TeamLead : ILead
{
public void AssginTask()
{
//Code to assign a task.
}
public void CreateSubTask()
{
//Code to create a sub task
}
public void WorkOnTask()
{
//Code to implement perform assigned task.
}
}

/// <summary>
/// 管理者
/// </summary>
public class Manager : ILead
{
public void AssginTask()
{
//Code to assign a task.
}
public void CreateSubTask()
{
//Code to create a sub task.
}
public void WorkOnTask()
{
throw new Exception("Manager can't work on Task");
}
}

?    (2) 解決方案,使用接口分離原則

/// <summary>
/// 程序員角色
/// </summary>
public interface IProgrammer
{
void WorkOnTask();
}

/// <summary>
/// 領(lǐng)導(dǎo)角色
/// </summary>
public interface ILead
{
void AssignTask();
void CreateSubTask();
}

/// <summary>
/// 程序員:執(zhí)行任務(wù)
/// </summary>
public class Programmer : IProgrammer
{
public void WorkOnTask()
{
//code to implement to work on the Task.
}
}

/// <summary>
/// 管理者:可以創(chuàng)建任務(wù)、分配任務(wù)
/// </summary>
public class Manager : ILead
{
public void AssignTask()
{
//Code to assign a Task
}
public void CreateSubTask()
{
//Code to create a sub taks from a task.
}
}

/// <summary>
/// 團(tuán)隊(duì)領(lǐng)域:可以創(chuàng)建任務(wù)、分配任務(wù)、執(zhí)行執(zhí)行
/// </summary>
public class TeamLead : IProgrammer, ILead
{
public void AssignTask()
{
//Code to assign a Task
}
public void CreateSubTask()
{
//Code to create a sub task from a task.
}
public void WorkOnTask()
{
//code to implement to work on the Task.
}
}
  5. 依賴反轉(zhuǎn)原則DIP

    依賴反轉(zhuǎn)原則是對(duì)程序的解耦。高級(jí)模塊/類不應(yīng)依賴于低級(jí)模塊/類,兩者都應(yīng)該依賴于抽象。意思是:當(dāng)某個(gè)類被外部依賴時(shí),就需要把該類抽象成一個(gè)接口。接口如何變成可調(diào)用的實(shí)例呢?實(shí)踐中多用依賴注入模式。這個(gè)依賴反轉(zhuǎn)原則在DDD中得到了很好的運(yùn)用實(shí)踐(參考前三篇)。

    (1) 演示:違反了依賴反轉(zhuǎn)原則。原因是:每當(dāng)客戶想要引入新的Logger記錄形式時(shí),我們需要通過添加新方法來改變ExceptionLogger類。這里錯(cuò)誤的體現(xiàn)了:高級(jí)類 ExceptionLogger直接引用低級(jí)類FileLogger和DbLogger來記錄異常。

  /// <summary>
/// 數(shù)據(jù)庫(kù)日志類
/// </summary>
public class DbLogger
{
//寫入日志
public void LogMessage(string aMessage)
{
//Code to write message in database.
}
}


/// <summary>
/// 文件日志類
/// </summary>
public class FileLogger
{
//寫入日志
public void LogMessage(string aStackTrace)
{
//code to log stack trace into a file.
}
}

public class ExceptionLogger
{
public void LogIntoFile(Exception aException)
{
FileLogger objFileLogger
= new FileLogger();
objFileLogger.LogMessage(GetUserReadableMessage(aException));
}

public void LogIntoDataBase(Exception aException)
{
DbLogger objDbLogger
= new DbLogger();
objDbLogger.LogMessage(GetUserReadableMessage(aException));
}

private string GetUserReadableMessage(Exception ex)
{
string strMessage = string.Empty;
//code to convert Exception's stack trace and message to user readable format.
return strMessage;
}
}


public class DataExporter
{
public void ExportDataFromFile()
{
try
{
//code to export data from files to database.
}
catch (IOException ex)
{
new ExceptionLogger().LogIntoDataBase(ex);
}
catch (Exception ex)
{
new ExceptionLogger().LogIntoFile(ex);
}
}
}

?    (2) 解決方案,使用依賴反轉(zhuǎn)原則,這里演示沒有用依賴注入。

public interface ILogger
{
void LogMessage(string aString);
}


/// <summary>
/// 數(shù)據(jù)庫(kù)日志類
/// </summary>
public class DbLogger : ILogger
{
//寫入日志
public void LogMessage(string aMessage)
{
//Code to write message in database.
}
}


/// <summary>
/// 文件日志類
/// </summary>
public class FileLogger : ILogger
{
//寫入日志
public void LogMessage(string aStackTrace)
{
//code to log stack trace into a file.
}
}


public class ExceptionLogger
{
private ILogger _logger;
public ExceptionLogger(ILogger aLogger)
{
this._logger = aLogger;
}

//可以與這些日志類達(dá)到松散耦合
public void LogException(Exception aException)
{
string strMessage = GetUserReadableMessage(aException);
this._logger.LogMessage(strMessage);
}

private string GetUserReadableMessage(Exception aException)
{
string strMessage = string.Empty;
//code to convert Exception's stack trace and message to user readable format.
return strMessage;
}
}

public class DataExporter
{
public void ExportDataFromFile()
{
ExceptionLogger _exceptionLogger;
try
{
//code to export data from files to database.
}
catch (IOException ex)
{
_exceptionLogger
= new ExceptionLogger(new DbLogger());
_exceptionLogger.LogException(ex);
}
catch (Exception ex)
{
_exceptionLogger
= new ExceptionLogger(new FileLogger());
_exceptionLogger.LogException(ex);
}
}
}

  參考文獻(xiàn)

    SOLID原則簡(jiǎn)介

原文地址:https://www.cnblogs.com/MrHSR/p/10912615.html

.NET社區(qū)新聞,深度好文,歡迎訪問公眾號(hào)文章匯總?http://www.csharpkit.com?

總結(jié)

以上是生活随笔為你收集整理的正反案例介绍SOLID原则的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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

久久女教师 | 黄色av一级 | 中文字幕亚洲不卡 | 国产美女黄网站免费 | 亚洲欧美视频网站 | 成人精品视频久久久久 | 超碰97国产在线 | av中文天堂在线 | 日韩免费一区二区 | 在线 国产 亚洲 欧美 | 国产99黄| 日韩精品视频免费在线观看 | 亚洲 欧洲av | 亚洲精品久久久久999中文字幕 | 中文亚洲欧美日韩 | 三三级黄色片之日韩 | 伊人婷婷网 | 一区免费视频 | 国产精品高清免费在线观看 | bbb搡bbb爽爽爽 | 九九九热精品免费视频观看网站 | av亚洲产国偷v产偷v自拍小说 | 在线韩国电影免费观影完整版 | 天堂va在线观看 | 91九色蝌蚪视频在线 | 成人欧美亚洲 | 国产精品99久久久久久大便 | 国产剧情在线一区 | 久草视频手机在线 | 久久久不卡影院 | 91av资源在线 | 中文字幕亚洲欧美日韩 | 日韩三级av | 久久五月激情 | 日本精品久久久久 | 国产尤物视频在线 | 久久人人爽爽 | 国产精品永久久久久久久久久 | 精品久久一区 | 国产免费一区二区三区最新6 | 日本狠狠干 | 黄色一级大片在线免费看国产一 | 日本最新高清不卡中文字幕 | av网站地址| 久草视频免费看 | 丁香综合激情 | 99精品久久久 | av免费在线观看网站 | 91女子私密保健养生少妇 | 欧美视频xxx | 国产精品欧美久久久久无广告 | 蜜桃视频色| 91免费高清观看 | 韩日视频在线 | 日韩在线第一区 | 日韩在线精品 | 视频二区在线视频 | 国产高清在线一区 | 国内偷拍精品视频 | 日韩精品中文字幕久久臀 | 日韩二级毛片 | 青青看片 | 日本韩国精品在线 | av片子在线观看 | 亚洲精品9 | 精品久久久久久久久久久久久久久久久久 | 久久人人爽人人爽人人片av软件 | 国产原创在线视频 | 日韩在线观看三区 | 国产精品自产拍在线观看桃花 | 国产免费观看久久 | av韩国在线 | 最新国产中文字幕 | 福利网址在线观看 | 成人永久免费 | 在线看片日韩 | 中文字幕在线看片 | 91.精品高清在线观看 | 波多野结衣久久资源 | 热久久视久久精品18亚洲精品 | 欧美色综合天天久久综合精品 | 欧美日韩不卡在线视频 | 久久国产视频网站 | 91视频下载 | 国产91小视频 | 日本久久精品 | 国产精品久久人 | 丁香六月中文字幕 | 色射爱| 狠狠色丁香婷婷综合久小说久 | 欧美日韩精品在线一区二区 | 日本中文字幕免费观看 | 在线视频专区 | 亚洲成人精品 | 中文字幕亚洲精品在线观看 | 成人免费在线电影 | 中文字幕 二区 | 精品国产乱码一区二 | 天天在线免费视频 | 99热播精品 | 久久久亚洲影院 | 97精品国产97久久久久久免费 | 欧美最猛性xxxxx亚洲精品 | 国产精品一区二区麻豆 | 三级av网站| 久久久香蕉视频 | 亚洲深夜影院 | 久久久 激情 | 日韩欧美精品在线视频 | 国产精品久久久久久久免费观看 | 97超碰成人在线 | 精品视频国产一区 | 日韩精品无码一区二区三区 | 色婷婷视频在线 | 久久草网 | 97超碰香蕉 | 精品国精品自拍自在线 | 黄色av电影在线 | 亚洲,播放 | 亚洲美女视频在线观看 | 国产精品九九久久久久久久 | 国产精品6 | 久久成人福利 | 中文字幕丰满人伦在线 | 99热999| 国产亚洲综合精品 | 午夜av在线电影 | 久久人人爽人人爽人人片av免费 | 一级黄色a视频 | 不卡的av在线 | 中文字幕在线播放一区二区 | 久久精品国产一区二区三 | 亚洲精品婷婷 | 中文字幕一区二区三区四区久久 | 国产精品久久久久久久久久免费看 | 色噜噜噜 | 黄色三级免费网址 | 日韩视频精品在线 | 欧美一区日韩一区 | 欧美日韩精品网站 | 亚洲综合在线观看视频 | 狠狠狠的干 | 国产精品久久久久久一二三四五 | 亚洲无吗av | 人人要人人澡人人爽人人dvd | 中文字幕一区二区三区在线观看 | 黄污网站在线观看 | 亚洲一级电影视频 | 中文字幕一区二区三区久久蜜桃 | 久久久久久久久久久网 | 最新日韩视频在线观看 | 午夜av电影院 | 中文av网 | 久草电影在线 | 丁香五月网久久综合 | 色噜噜狠狠色综合中国 | 中文字幕在线观看免费 | 精品一二区 | 久久丁香| 人人玩人人添人人澡97 | 成人在线观看资源 | 国产精品视频你懂的 | 99久久99| 日韩免费视频线观看 | 岛国片在线| 色婷婷88av视频一二三区 | 婷婷成人综合 | 国产在线a免费观看 | 蜜臀精品久久久久久蜜臀 | 91av手机在线观看 | av高清网站在线观看 | 成年人视频在线免费 | 黄网av在线 | 日本夜夜草视频网站 | 国产高清视频在线 | 国产成人精品免费在线观看 | 国产91精品一区二区麻豆网站 | 成人久久久久久久久 | 狠狠色噜噜狠狠狠 | 激情在线网址 | 国产又粗又猛又黄视频 | 欧美一级在线观看视频 | 久久久久久国产一区二区三区 | 色综合久久88色综合天天人守婷 | 久久久精品一区二区三区 | 天堂av一区二区 | 欧美精彩视频在线观看 | 黄色一级大片在线免费看国产一 | 天天草天天摸 | 中文字幕在线久一本久 | 97视频免费在线观看 | 日本黄色片一区二区 | 日本在线观看一区二区三区 | 亚洲日韩欧美视频 | 手机在线永久免费观看av片 | 日韩在线观看第一页 | 国产成人精品日本亚洲999 | 国产亚洲免费观看 | 91在线www | 天天天干夜夜夜操 | 欧美a在线免费观看 | 99久久精品免费 | 91污在线 | 91视频在线免费 | 国产精彩视频 | 婷婷精品在线 | 亚洲欧美日韩国产一区二区 | 天天干天天拍天天操 | 中文字幕观看av | 少妇bbb | 丁香5月婷婷久久 | 欧美久久久久久久久久 | 国产99久久九九精品免费 | www天天干 | 日韩视频一区二区三区在线播放免费观看 | 精品久久久一区二区 | 亚洲va韩国va欧美va精四季 | 视频在线观看入口黄最新永久免费国产 | 亚洲精选视频在线 | 毛片www| 五月天亚洲综合 | 日韩精品中文字幕在线播放 | 国产香蕉97碰碰久久人人 | 久久精品视频99 | 成人午夜电影网 | 黄色av大片| 草免费视频 | 天天干,天天操,天天射 | 九九九在线观看视频 | 亚洲综合成人av | 狠狠干狠狠久久 | 成人免费视频免费观看 | 在线中文字幕一区二区 | 江苏妇搡bbbb搡bbbb | 狠狠操操 | 精品99久久 | 2018亚洲男人天堂 | 亚洲精品视频在线观看免费 | 亚洲免费一级电影 | 国产97在线播放 | 日日噜噜噜噜夜夜爽亚洲精品 | 婷婷色五 | 精品一区二区电影 | 操天天操 | 欧美有色 | 欧美日韩18 | 中文字幕乱码日本亚洲一区二区 | 精品国产三级a∨在线欧美 免费一级片在线观看 | 国产一区成人 | 91亚·色| 欧美一区日韩一区 | 黄色aaa级片| 亚洲一区欧美激情 | 亚洲一区二区三区在线看 | 日韩中文字幕免费视频 | 中文字幕av一区二区三区四区 | 日批视频 | 国产色啪 | 免费十分钟 | 欧美午夜激情网 | 国产黄色大全 | 日韩中文字幕网站 | 国产精品一区二区三区四区在线观看 | 韩国av免费观看 | 五月婷婷六月丁香在线观看 | 在线观看免费av网 | 狠狠干婷婷色 | 亚洲一区日韩在线 | 在线观看激情av | 亚洲精品影院在线观看 | 最近中文字幕第一页 | 国产精品久久片 | 免费 在线 中文 日本 | 另类老妇性bbwbbw高清 | 国内精品久久久久久久久久 | 国语精品久久 | 欧美成人手机版 | 国内成人精品2018免费看 | 日韩在线观看网址 | 一区二区视频免费在线观看 | 四虎在线免费观看 | 国产啊v在线 | 最近av在线| 色综合www | 中文字幕一区二区三区视频 | 精品在线观看一区二区 | 狠狠色丁香婷婷综合基地 | 色欲综合视频天天天 | 欧美精品视 | www日韩精品 | 久久伊人综合 | 精品亚洲va在线va天堂资源站 | 天天舔夜夜操 | 久久国产一二区 | 五月激情五月激情 | 国内精品视频在线 | 91视视频在线直接观看在线看网页在线看 | 一区三区视频在线观看 | 97久久久免费福利网址 | 成年人国产精品 | 在线草| 亚洲美女视频在线观看 | 91日韩在线视频 | 青青草国产在线 | 日日草夜夜操 | 国产精品99久久久久久久久久久久 | 最近中文字幕在线中文高清版 | 国产精品久久久久久久免费观看 | 亚洲专区中文字幕 | 在线免费成人 | 亚洲理论视频 | av电影不卡在线 | 欧美另类老妇 | 一级黄色大片在线观看 | 亚洲精品在线视频网站 | 少妇激情久久 | 亚洲电影久久 | 欧美另类性| 欧美一级日韩免费不卡 | 免费男女羞羞的视频网站中文字幕 | 九月婷婷人人澡人人添人人爽 | 国产精品久久久久av免费 | 国产精品自在线 | jizz18欧美18| 九九久久久久99精品 | 欧美一二三四在线 | 干综合网 | 黄色免费电影网站 | 免费a级毛片在线看 | 视频99爱| 麻豆视频免费看 | 99视频国产精品 | 日韩av二区 | 天天摸天天舔天天操 | 国产一级免费播放 | 日日干干夜夜 | 成人影视片 | 国产成人一区二区啪在线观看 | 亚洲成色777777在线观看影院 | 91香蕉国产 | 久久综合久久综合九色 | 99视频在线观看免费 | 99re6热在线精品视频 | 成人天堂网 | 日韩激情免费视频 | 日韩日韩日韩日韩 | 一区二区三区av在线 | 亚洲精品国产拍在线 | 日本在线观看中文字幕 | 毛片99| 久久精品网站免费观看 | 久久综合影视 | 日韩在线免费看 | 国产成人av免费在线观看 | 久久综合偷偷噜噜噜色 | 美女黄网站视频免费 | 一区二区免费不卡在线 | 亚洲永久精品在线观看 | 国产精品中文 | 久久99国产综合精品免费 | 国产精品片 | 日日噜噜噜噜夜夜爽亚洲精品 | 亚洲,国产成人av | 色噜噜在线观看 | 婷婷丁香色 | 日本中文字幕在线看 | 国产精品手机播放 | 久久国产精品免费一区二区三区 | 久插视频| 色吧久久 | 色婷婷久久久 | 国产不卡av在线播放 | 色91在线视频| 久久久.com| 天天干天天干天天干天天干天天干天天干 | 亚洲人成免费网站 | 黄色网址国产 | 在线观看视频中文字幕 | 亚洲国产日韩一区 | 久久免费视频播放 | 激情视频一区 | 97超碰精品 | 日韩字幕在线 | 在线观看av黄色 | 日韩久久久久久久久久久久 | 2019天天干夜夜操 | 天堂av在线中文在线 | 草久久久久| 日日摸日日 | 播五月婷婷 | 国产免费小视频 | 亚洲三区在线 | 亚洲精品玖玖玖av在线看 | 亚洲视频精选 | 日韩精品在线免费观看 | 国产在线播放一区二区三区 | 一级淫片在线观看 | 97爱爱爱 | 国产专区在线 | 国产老太婆免费交性大片 | 久久精彩视频 | 麻豆一区在线观看 | 四虎成人精品永久免费av | 国产成人av网 | 黄色精品国产 | 丁香婷婷综合五月 | 精品一区二区在线免费观看 | 天天插狠狠干 | 天天爽天天爽天天爽 | 亚洲成人av一区二区 | 精品国产一区二区三区男人吃奶 | 2024国产精品视频 | www.五月天| 亚洲免费av电影 | 狠狠干天天操 | 高清日韩一区二区 | 天堂中文在线视频 | 国产麻豆精品在线观看 | a午夜电影 | 中文字幕在线网址 | 一区二区三区四区精品视频 | 四虎国产精品免费观看视频优播 | 国产一卡久久电影永久 | 欧美色精品天天在线观看视频 | 日本韩国欧美在线观看 | 免费观看成人 | 亚洲狠狠操 | 久久国产精品久久精品 | 日韩动态视频 | 韩日精品中文字幕 | 欧美性色xo影院 | 亚洲成人免费观看 | 天天色天天操综合 | 成年人在线免费看视频 | 波多野结衣在线中文字幕 | 久久久综合九色合综国产精品 | 国产精品一区二区精品视频免费看 | 激情av五月婷婷 | 中文字幕av影院 | 欧美成人影音 | 婷婷中文字幕 | 精品在线小视频 | 麻豆视频在线免费观看 | 特片网久久 | av免费在线观看1 | 日韩av电影中文字幕在线观看 | 久久久国产精品亚洲一区 | 亚洲乱码久久 | 在线观看一区视频 | 国产精品久久久一区二区三区网站 | 二区三区在线观看 | 国产伦理一区二区三区 | 黄色软件视频网站 | 亚洲精品合集 | 欧美一级高清片 | 91亚洲精品乱码久久久久久蜜桃 | 中文字幕视频在线播放 | 奇米7777狠狠狠琪琪视频 | 色播五月激情综合网 | 91精品在线免费观看视频 | 国精产品满18岁在线 | 日韩视频三区 | 99精品视频在线观看播放 | 精品国内自产拍在线观看视频 | 婷婷丁香激情综合 | 美女网站色在线观看 | 国产精品美女久久久久久久 | 97碰在线视频| 四虎影视久久久 | 天天干,天天插 | www.在线观看av | 伊人国产女 | 丁香六月五月婷婷 | av中文在线观看 | 国产视频精选 | 日韩精品一区二区三区水蜜桃 | 亚洲九九精品 | 精品国产电影一区二区 | 欧美午夜精品久久久久 | 亚洲男男gaygayxxxgv | 91黄色在线视频 | 亚洲美女视频在线观看 | 国产精品理论片在线观看 | 日韩欧美精品在线 | 字幕网在线观看 | 欧美日韩在线视频观看 | 99久久精品免费一区 | www视频在线播放 | 久草在线视频新 | 精品国产免费人成在线观看 | 欧美不卡视频在线 | 国产 视频 高清 免费 | 国产第一页福利影院 | 国产视频精品免费 | 日本中文乱码卡一卡二新区 | 久久精品国产亚洲精品 | 又色又爽的网站 | 久久久久久久久免费视频 | 国产精品18久久久久久久 | 久久人网 | 香蕉影院在线播放 | 欧美性受极品xxxx喷水 | 首页av在线| 综合网伊人 | 久久久久久久久久久国产精品 | 九色自拍视频 | 日韩精品在线一区 | 婷婷激情小说网 | 精品乱码一区二区三四区 | 日韩三级免费 | 99精品视频播放 | 激情偷乱人伦小说视频在线观看 | 亚洲天天摸日日摸天天欢 | 欧美天天综合网 | 中文字幕在线影院 | 伊香蕉大综综综合久久啪 | 中文字幕网站视频在线 | 亚洲美女视频在线 | 国产精品第十页 | 色综合国产 | 亚洲美女精品视频 | 亚洲精品国产精品99久久 | 亚洲激情婷婷 | 一级一级一片免费 | 国产原创91| 超碰99在线 | 久久免费看视频 | 丁香婷婷色综合亚洲电影 | 亚洲精品视频在线观看视频 | 精品国产乱码久久久久久久 | 成人手机在线视频 | 免费视频一区 | 一级黄色视屏 | 日本99精品 | 一区二区精品视频 | 色无五月 | 中文字幕乱码一区二区 | 黄色高清视频在线观看 | 不卡视频在线 | 97成人免费 | 国产精品亚洲综合久久 | 日本xxxxav| 中文字幕 国产视频 | 91色视频 | 天天操天天操天天操天天 | 天天干天天拍天天操天天拍 | 91精品国产99久久久久久红楼 | 在线观看亚洲精品视频 | 一区二区三区手机在线观看 | 久久久久久久久综合 | 最近免费中文视频 | 四虎在线影视 | 亚洲精品av中文字幕在线在线 | 91人人爱| 全久久久久久久久久久电影 | 久久久久视 | av大全在线免费观看 | 天天插日日操 | 97视频在线播放 | 久久在线 | 国产美女网站视频 | 激情欧美在线观看 | 国产精品久久久久一区 | 中文字幕亚洲综合久久五月天色无吗'' | 免费看的毛片 | 最新日韩视频 | 少妇搡bbbb搡bbb搡aa | 正在播放国产精品 | 久要激情网 | 久久久五月天 | 97精品国产97久久久久久春色 | 色资源网免费观看视频 | 国产中文字幕在线观看 | 亚洲区另类春色综合小说校园片 | 超碰av在线 | 久久久久综合 | 丁香五婷 | 国产亚洲视频在线观看 | 日本aa在线 | 91精品国产三级a在线观看 | 国产精品中文字幕在线观看 | 亚洲精品一区二区三区在线观看 | 九九热免费精品视频 | 亚洲视频免费视频 | 人人爽人人搞 | 国内精品亚洲 | 黄色在线观看污 | 久久久久欧美精品 | 91麻豆精品国产自产在线游戏 | a天堂免费| 精品视频成人 | 高清精品在线 | 精品国产一二三 | av在线免费不卡 | 亚洲精品乱码久久久久久蜜桃动漫 | 黄色免费在线看 | 91麻豆产精品久久久久久 | 九九综合九九 | 美女网站视频免费都是黄 | 91麻豆国产福利在线观看 | 久久99久久99精品 | 黄色a视频免费 | 美女国内精品自产拍在线播放 | 青青视频一区 | 91在线永久 | 免费在线播放av电影 | 免费a v在线 | 久久99精品久久久久久三级 | 欧美日本三级 | 日韩美在线 | 麻豆影视网 | 99久久激情| 黄色网在线免费观看 | 欧美a级片免费看 | 四虎成人精品永久免费av | 色精品视频| 九九热免费精品视频 | 欧美日韩国产在线一区 | 国产又粗又硬又长又爽的视频 | 亚洲精品中文字幕在线观看 | 夜色资源站国产www在线视频 | 夜夜躁狠狠躁 | 韩国一区二区av | 日韩在线免费电影 | 92中文资源在线 | 天天爱综合 | 久久噜噜少妇网站 | 色偷偷人人澡久久超碰69 | 蜜桃av人人夜夜澡人人爽 | 欧美日韩视频在线一区 | 国产精品久久一区二区三区, | 九九免费在线观看视频 | 日韩av电影国产 | 激情影院在线 | 9在线观看免费高清完整版 玖玖爱免费视频 | 国产精品一区二区电影 | 天天干干| 午夜三级福利 | 99热在线观看免费 | 日韩二区三区 | av福利网址导航大全 | 国产日韩欧美在线播放 | 在线看一级片 | 日韩免费一区 | 国产精品精品国产色婷婷 | 免费观看高清 | 成人在线一区二区 | 91中文字幕永久在线 | 最新日韩中文字幕 | av黄网站| 99热在线国产精品 | 国产高清在线免费观看 | 国产成人一区二区三区久久精品 | 亚洲综合成人婷婷小说 | 欧美一区二区三区在线看 | 2022中文字幕在线观看 | 91福利免费 | 国产一区二区电影在线观看 | 精品亚洲成a人在线观看 | 91av中文字幕 | 国产一区在线免费 | 国产黄色av网站 | 精品国产伦一区二区三区 | 欧美日韩精品网站 | 成人资源在线播放 | 日韩久久午夜一级啪啪 | 亚洲视频1区2区 | 国产免费嫩草影院 | 天天要夜夜操 | 一区二区三区免费在线观看 | 中文字幕在线久一本久 | 久久永久免费视频 | 日韩中文字幕免费电影 | 日韩 精品 一区 国产 麻豆 | 97超碰总站 | 99高清视频有精品视频 | 999久久国产精品免费观看网站 | 中文字幕的 | 99精品久久久 | 久久久91精品国产一区二区精品 | 国产精品网红直播 | 97精品国产手机 | 日韩videos高潮hd | 日韩a在线观看 | 国产精品精品国产婷婷这里av | 永久免费观看视频 | 天天想夜夜操 | 国产日韩欧美在线播放 | 91大神在线观看视频 | 色婷婷精品大在线视频 | 99热亚洲精品 | 国产美女网站在线观看 | 久久午夜精品影院一区 | 国产精品久久久av久久久 | 999亚洲国产996395 | av中文字幕网 | 国产精品久久久久久麻豆一区 | 超碰最新网址 | 国产人成看黄久久久久久久久 | 色综合久 | 国产剧情av在线播放 | 日韩在线免费看 | 午夜精品av | 国产在线传媒 | 国产午夜精品免费一区二区三区视频 | 一本到在线 | 免费三级黄色片 | 久久免费视频99 | 日韩一区二区在线免费观看 | 久草视频播放 | 免费一区在线 | 天海冀一区二区三区 | 天天天天色射综合 | 欧美a√大片 | 国产一区欧美在线 | 色婷丁香 | 亚洲精品久久久蜜臀下载官网 | 最新色站| 久黄色| 国产中文在线字幕 | 婷婷www| 国产亚洲精品久久久久久久久久 | 国产a精品 | 国产 日韩 欧美 中文 在线播放 | 美女网站在线观看 | 欧美性视频网站 | 欧美日韩不卡一区二区三区 | 国产精品久久久久久久久搜平片 | 美女黄久久 | 综合天堂av久久久久久久 | 99久久精品费精品 | 激情偷乱人伦小说视频在线观看 | 成人动漫精品一区二区 | 91在线看免费 | 亚洲国产午夜精品 | 99久热在线精品视频观看 | 久久精品男人的天堂 | 超碰在线网 | 日本三级国产 | 久久免费视频播放 | 综合色中文 | 久久久精品欧美一区二区免费 | 99精品欧美一区二区 | 免费黄色激情视频 | 国产夫妻性生活自拍 | 欧美日韩一区三区 | 国产精品乱码一区二区视频 | 96久久 | 亚洲撸撸 | 亚洲女欲精品久久久久久久18 | 一级淫片在线观看 | 欧美成人91 | 国产色视频网站2 | 中文字幕中文字幕 | 黄色a视频免费 | 精品久久久久久久久久久久久久久久久久 | 亚洲2019精品 | 国内精品久久天天躁人人爽 | 免费av影视 | 91麻豆精品国产自产 | 在线黄色免费av | 日韩av影片在线观看 | 欧美日韩国产页 | 色五月色开心色婷婷色丁香 | 日韩精品久久久免费观看夜色 | 99热日本| 在线蜜桃视频 | 欧美成年黄网站色视频 | 一级α片免费看 | 一区二区三区精品在线 | 欧美精品一区二区在线观看 | 久久免费精品 | 91精品国产91久久久久久三级 | 五月天电影免费在线观看一区 | 欧美成人猛片 | 国产在线a不卡 | 久久精品一二区 | 亚洲精品黄色 | 99精品视频一区二区 | 精品久久视频 | 国产日韩欧美在线 | 国产麻豆精品在线观看 | 色妞色视频一区二区三区四区 | 久久久久久免费毛片精品 | 中文永久免费观看 | 99性视频| 亚洲黄色一级大片 | 国产精品五月天 | 98久久 | 激情综合五月天 | 日韩av综合网站 | 午夜成人免费影院 | 人人草在线视频 | 久久久国产精品亚洲一区 | 亚洲综合在线五月天 | va视频在线 | 久久久天天操 | 久久伊人精品天天 | 精品在线看 | 欧美国产日韩激情 | 六月色丁香 | 91黄色在线观看 | 99久久国产免费看 | 色综合久久久久综合99 | 久久视了| 国产黄在线免费观看 | 波多野结衣视频在线 | 日韩黄色中文字幕 | 天天看天天操 | 国产99中文字幕 | 欧美韩国日本在线观看 | 天堂av最新网址 | 在线v | 狠狠色丁香婷婷 | www.夜夜爱 | 成人黄色免费观看 | 国产在线中文 | 亚洲人成在线观看 | 日韩欧美精品一区二区 | 久久精彩免费视频 | 午夜精品导航 | 亚洲三级黄色 | 久久91网| 午夜12点 | 国产小视频免费观看 | 日韩av午夜 | 黄色免费网站 | av一级网站 | 亚洲国产精品500在线观看 | 亚洲国产大片 | 99视频精品在线 | 天天色天天射综合网 | 亚洲最快最全在线视频 | 天天干天天摸天天操 | 精品国产综合区久久久久久 | 国产偷国产偷亚洲清高 | 91视频国产高清 | 肉色欧美久久久久久久免费看 | 在线国产一区 | 中文字幕在线播放第一页 | 一本色道久久综合亚洲二区三区 | 精品国产一区二区三区久久久久久 | 欧美日韩调教 | 欧美小视频在线观看 | 91入口在线观看 | 国产高清在线免费观看 | 麻豆视频在线免费观看 | 亚洲女人av | 成人网在线免费视频 | 国产精品12345| 色偷偷97 | 日韩色一区二区三区 | 中文字幕在线观看的网站 | 日韩激情av在线 | 中文字幕日韩电影 | 91在线操 | 豆豆色资源网xfplay | 免费视频成人 | 久久人人97超碰com | 美女免费视频观看网站 | 国产精品日韩欧美一区二区 | 免费观看的av | 亚洲一区视频免费观看 | 久精品在线 | 黄色一级在线免费观看 | 成人h动漫在线看 | 国产精品久久久久久五月尺 | 日韩欧美在线视频一区二区 | 黄色一级性片 | 狠狠色丁香婷婷综合欧美 | 涩涩网站在线播放 | 日韩av中文字幕在线免费观看 | 久久综合五月天婷婷伊人 | 久久久久久网址 | 成人国产亚洲 | 激情网站| 久久99在线视频 | 99视频播放 | 国产粉嫩在线 | 色婷婷激情电影 | 国产三级香港三韩国三级 | 色99久久| 欧美日韩二区在线 | 亚洲精品字幕在线 | 天天操天天干天天操天天干 | 久久av不卡 | 99久久婷婷国产一区二区三区 | 尤物一区二区三区 | 超黄视频网站 | 九九久久视频 | 91.dizhi永久地址最新 | 黄色软件网站在线观看 | 91传媒视频在线观看 | 人人爽人人搞 | 欧美日韩中文字幕在线视频 | 成年人在线免费视频观看 | 日韩在线大片 | 久久精品日产第一区二区三区乱码 | 色久天| 国色天香在线观看 | 91精品少妇偷拍99 | 91成年视频 | 日韩欧美xxx | 国产成人精品一区二区三区 | 一本之道乱码区 | 五月婷婷电影网 | 日韩在线视 | 久久这里只有精品1 | 中午字幕在线观看 | 色视频在线看 | 成人黄色大片在线观看 | 98超碰在线观看 | 日韩欧在线 | 日韩高清一二区 | 欧洲精品一区二区 | 久久国产香蕉视频 | 久久电影网站中文字幕 | 国产在线免费av | 在线 国产一区 | 新版资源中文在线观看 | 免费网站在线 | 国产精品国内免费一区二区三区 | 久久免费激情视频 | 欧美xxxxx在线视频 | 亚洲精品久久久蜜桃直播 | 亚洲撸撸 | 亚洲观看黄色网 | 免费看国产视频 | 久久草网站 | 韩国精品福利一区二区三区 | 久草热视频 | 亚洲日本va午夜在线影院 | 中文字幕精品www乱入免费视频 | 婷婷六月综合亚洲 | 日本中文字幕在线观看 | 亚洲欧美日韩中文在线 | 青草视频免费观看 | 精品一区二区精品 | 欧美贵妇性狂欢 | 亚洲成av人片在线观看无 | 91亚洲欧美 | 在线影院 国内精品 | 蜜臀aⅴ国产精品久久久国产 | 激情五月在线 | 亚洲国产精品电影在线观看 | 探花视频在线观看免费 | 欧美一区,二区 | 亚洲精品玖玖玖av在线看 | 午夜 在线 | 五月婷色 | 天堂中文在线播放 | 午夜.dj高清免费观看视频 | 成人精品亚洲 | 中文字幕一区二区三区在线视频 | 黄网在线免费观看 | 国产麻豆视频在线观看 | 天天干天天干天天 | 国产精品久久久久久999 | 亚洲精品成人av在线 | 人人爱人人做人人爽 | 国产男女免费完整视频 | 粉嫩一二三区 | 午夜在线资源 | 91精品国自产在线观看欧美 | 天天干天天拍天天操 | 日韩中文在线播放 | 色噜噜日韩精品一区二区三区视频 | 欧美一级专区免费大片 | 久久久久久福利 | 日韩av片免费在线观看 | 久久观看最新视频 | 一区二区伦理 | 欧美日韩高清不卡 | av电影不卡 | 草久在线 | 欧美专区日韩专区 | 亚洲激情综合 | 久草综合在线 | 亚洲涩涩网 | 九九热视频在线播放 | 日日天天| 亚洲高清激情 | 天天人人综合 | 久草在线资源视频 | 久久av伊人| 久久精品免费看 | 国产精品v a免费视频 | 激情五月婷婷综合网 | 日韩精品中文字幕一区二区 | 国内亚洲精品 | 99久精品 | 992tv在线观看 | 69国产精品成人在线播放 | 综合伊人久久 | 欧美精品一区在线发布 | 国产日韩欧美在线播放 | 久久99精品国产99久久6尤 | 狠狠色婷婷丁香六月 |