- [DEVEXPRESS] Hướng dẫn bật tính năng Scroll Pixcel in Touch trên GridView
- [DEVEXPRESS] Hướng dẫn sử dụng TileBar viết ứng dụng duyệt hình ảnh Winform
- [DEVEXPRESS] Tô màu border TextEdit trên Winform
- [C#] Lấy dữ liệu từ Console Write hiển thị lên textbox Winform
- [C#] Hiển thị Progress bar trên Window Console
- [C#] Di chuyển control Runtime và lưu layout trên winform
- [SQLSERVER] Sử dụng hàm NULL IF
- [C#] Chia sẽ source code mã đi tuần bằng giao diện Winform
- [C#] Flash Window in Taskbar Winform
- Download và Giải nén tập tin File sử dụng Powershell
- [C#] Hướng dẫn cách lấy thông tin đăng nhập tài khoản và mật khẩu web browser trên windows
- [VB.NET] CRUD Thêm xóa sửa tìm kiếm Realtime FireBase
- [C#] Hiển thị thông báo Toast Message trong lập trình Winform
- [C#] Cấu hình định dạng ngày tháng, thời gian trên Windows cho ứng dụng Winform
- [C#] Rút gọn đường dẫn link url với TinyURL API
- [C#] Hướng dẫn cách bo tròn winform with Radius
- [C#] Chia sẽ class BackGroundOverlay Show Modal cho Winform
- [C#] Hướng dẫn Flip Image Winform
- [C#] Invoke là gì? cách sử dụng phương thức Invoke()
- [C#] Hướng dẫn chia sẽ file, folder từ ứng dụng sang Zalo Chat
[C#] Hướng dẫn sử dụng Fluent Interface Design Pattern
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.
Để 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!