Design pattern là gì, các loại design pattern phổ biến?
Thứ Năm, 29/06/2023 · 5 phút đọc
Design pattern (mẫu thiết kế) là một giải pháp tổ chức và cung cấp một hướng dẫn cho việc giải quyết các vấn đề lập trình phổ biến. Nó là một mô hình cung cấp một phương pháp chuẩn để thiết kế và triển khai mã trong quá trình phát triển phần mềm.
Có nhiều loại design pattern phổ biến, trong đó một số loại phổ biến bao gồm:
- Creational Patterns (Mẫu thiết kế tạo đối tượng): Tập trung vào quá trình tạo đối tượng, giúp giảm sự phụ thuộc vào lớp cụ thể trong quá trình tạo đối tượng. Một số ví dụ bao gồm Singleton, Factory, Builder và Prototype.
- Structural Patterns (Mẫu thiết kế cấu trúc): Liên quan đến cách các đối tượng được tổ chức lại để tạo thành các cấu trúc lớn hơn. Cung cấp các cách để kết nối các đối tượng lại với nhau để đạt được mục tiêu cụ thể. Một số ví dụ bao gồm Adapter, Decorator, Composite và Facade.
- Behavioral Patterns (Mẫu thiết kế hành vi): Tập trung vào cách các đối tượng tương tác và phân chia trách nhiệm. Chúng tập trung vào cách các đối tượng giao tiếp và hoạt động cùng nhau để đạt được các mục tiêu cụ thể. Một số ví dụ bao gồm Observer, Strategy, Command và Iterator.
- Architectural Patterns (Mẫu thiết kế kiến trúc): Định nghĩa các kiến trúc tổng thể cho việc phát triển hệ thống lớn hơn. Chúng tập trung vào cách các thành phần của hệ thống tương tác với nhau và được tổ chức như thế nào để đạt được mục tiêu kiến trúc. Một số ví dụ bao gồm Model-View-Controller (MVC), Layered Architecture và Microservices Architecture.
Đây chỉ là một số ví dụ về các loại design pattern phổ biến. Mỗi loại pattern có mục đích và cách sử dụng riêng, tùy thuộc vào vấn đề cụ thể mà bạn đang giải quyết trong quá trình phát triển phần mềm.
Dưới đây là một số ví dụ về design pattern trong ngôn ngữ C#:
- Singleton Pattern:
public class DatabaseConnection { private static DatabaseConnection instance; private DatabaseConnection() { // Khởi tạo kết nối database } public static DatabaseConnection Instance { get { if (instance == null) { instance = new DatabaseConnection(); } return instance; } } }
Trong ví dụ trên, Singleton Pattern được sử dụng để đảm bảo rằng chỉ có một kết nối duy nhất đến cơ sở dữ liệu được tạo ra và sử dụng trong toàn bộ ứng dụng.
- Factory Pattern:
public interface IShape { void Draw(); } public class Circle : IShape { public void Draw() { Console.WriteLine("Vẽ hình tròn"); } } public class Rectangle : IShape { public void Draw() { Console.WriteLine("Vẽ hình chữ nhật"); } } public class ShapeFactory { public IShape CreateShape(string shapeType) { if (shapeType == "circle") { return new Circle(); } else if (shapeType == "rectangle") { return new Rectangle(); } return null; } }
trong ví dụ trên, Factory Pattern được sử dụng để tạo ra các đối tượng hình học (hình tròn, hình chữ nhật) mà không cần tiết lộ logic cụ thể của việc tạo đối tượng.
- Observer Pattern:
public interface IObserver { void Update(string data); } public interface ISubject { void Attach(IObserver observer); void Detach(IObserver observer); void Notify(string data); } public class WeatherStation : ISubject { private List<IObserver> observers = new List<IObserver>(); public void Attach(IObserver observer) { observers.Add(observer); } public void Detach(IObserver observer) { observers.Remove(observer); } public void Notify(string data) { foreach (var observer in observers) { observer.Update(data); } } } public class Display : IObserver { public void Update(string data) { Console.WriteLine("Dữ liệu mới: " + data); } }
Trong ví dụ trên, Observer Pattern được sử dụng để thiết lập một mô hình liên lạc giữa đối tượng người nhận (Display) và nhà cung cấp thông báo (WeatherStation). Display đăng ký và nhận thông báo khi dữ liệu thay đổi.
Lưu ý rằng đây chỉ là một số ví dụ và có nhiều design pattern khác trong C#. Sự lựa chọn design pattern phụ thuộc vào nhu cầu và cấu trúc của ứng dụng bạn đang xây dựng.
- Ảnh đại diện bài viết -
