[C#] Hướng dẫn sử dụng Fluent Interface Design Pattern

[C#] Hướng dẫn sử dụng Fluent Interface Design Pattern
Đăng bởi: Thảo meo - Lượt xem: 1590 08:27:37, 24/11/2020C#   In bài viết

Xin chào các bạn, bài viết hôm nay mình sẻ nói về Fluent Interface design pattern trong lập trình C#, Winform.

[C#] Using Fluent Interface Design Pattern

Vậy Fluent Interface là gì?

Fluent interface được đặt ra bởi Eric Evans và Martin Fowler, là sự mở rộng của kỹ thuật “Lời gọi theo chuỗi” (method chaining) nhằm làm cho mã lập trình dễ đọc hơn.

Method chaining là một kỹ thuật về cú pháp chung cho cách gọi nhiều lần tới các hàm khác trong lập trình hướng đối tượng.

Các bạn nào thường sử dụng Linq sẽ thấy cấu trúc giống như vậy.

fluent_interface

Để dễ hiểu các bạn như code bên dưới:

var student = new FluentStudent()
    .Name("Nguyễn Phương Nhi")
    .Age(1)
    .Address("Kiên Giang")
    .Gender("Nữ")
    .DateOfBirth(Convert.ToDateTime("11/08/2020"));
student.ShowInfo();   

Cách để build một object giống code trên gọi là Fluent Design Interface.

Ví dụ: Đầu tiên các bạn tạo một class Student

public class Student
{
    public string Name { set; get; }
    public string Address { set; get; }
    public string Gender { set; get; }
    public int Age { set; get; }
    public DateTime DateofBirth { set; get; }
}

Thông thường khi các bạn Tạo mới một đối tượng và Set thuộc tính cho đối tượng.

var student1 = new Student();
student1.Name = "Nguyễn Thảo";
student1.Address = "Vũng Tàu";
student1.Gender = "Nam";
student1.Age = 31;
student1.DateofBirth = Convert.ToDateTime("28/03/1988");

Để sử dụng Fluent Interface thì chúng ta viết các phương thức để set thuộc tính cho class đó và Return this.

Bây giờ chúng ta sẽ tạo một class FluentStudent như sau:

public class FluentStudent
{
    private Student student = new Student();
    public FluentStudent Name(string Name)
    {
        student.Name = Name;
        return this;
    }
    public FluentStudent Address(string Address)
    {
        student.Address = Address;
        return this;
    }

    public FluentStudent Gender(string Gender)
    {
        student.Gender = Gender;
        return this;
    }

    public FluentStudent Age(int Age)
    {
        student.Age = Age;
        return this;
    }
    public FluentStudent DateOfBirth(DateTime DateOfBirth)
    {
        student.DateofBirth = DateOfBirth;
        return this;
    }

    public void ShowInfo()
    {
        Console.WriteLine("=========================================");
        Console.WriteLine($"Name: {student.Name}");
        Console.WriteLine($"Address: {student.Address}");
        Console.WriteLine($"Gender: {student.Gender}");
        Console.WriteLine($"Age: {student.Age}");
        Console.WriteLine($"DateofBirth: {student.DateofBirth}");
        Console.WriteLine("=========================================");
    }
}

Và bây giờ chúng ta tạo đối tượng sử dụng như sau:

var student2 = new FluentStudent()
	.Name("Nguyễn Phương Nhi")
	.Age(1)
	.Address("Kiên Giang")
	.Gender("Nữ")
	.DateOfBirth(Convert.ToDateTime("11/08/2020"));
student2.ShowInfo();          

Thanks for watching!

DOWNLOAD SOURCE

Tags: fluent interface c#design pattern c#

THÔNG TIN TÁC GIẢ

THẢO LUẬN BÀI VIẾT

BÀI VIẾT LIÊN QUAN

[C#] Hướng dẫn sử dụng Fluent Interface Design Pattern
Đăng bởi: Thảo meo - Lượt xem: 1590 08:27:37, 24/11/2020C#   In bài viết

CÁC BÀI CÙNG CHỦ ĐỀ

.