Design Pattern

Design Pattern

Sắp xếp theo: Bài viết mới nhất
Avatar

Cùng mình học DesignPattern: Builder 👷

Đây là bài viết nằm trong Series NestJS thực chiến, các bạn có thể xem toàn bộ bài viết ở link: https://viblo.asia/s/nestjs-thuc-chien-MkNLr3kaVgA

Đặt vấn đề 📜 Xin chào mọi người, ở bài viết trước chúng ta đã tìm hiểu về State Design Pattern, hôm nay chúng ta sẽ cùng nối tiếp bài viết với một Design Pattern không kém phần hấp dẫn chính là Builder 👷🏗️🏢. Như thường lệ chúng ta sẽ nói qua về kha...

200 1 0
2
Avatar

Observer Pattern trong Java

Design Pattern Observer là một mẫu thiết kế thuộc nhóm Behavioral Patterns (hành vi), cho phép một đối tượng (gọi là Subject hoặc Observable) thông báo đến các đối tượng khác (Observers) khi trạng thái của nó thay đổi. Điều này giúp tách biệt giữa các thành phần, tăng tính mở rộng và giảm sự phụ thuộc lẫn nhau. Cơ bản về Observer Pattern Các thành phần chính::

  • Subject (Observable): Đối tượng ...
143 0 0
1
Avatar

Command Pattern trong Java

Design Pattern Command là một trong những mẫu thiết kế hành vi (Behavioral Design Pattern), cho phép bạn đóng gói một yêu cầu dưới dạng một đối tượng, từ đó bạn có thể:

  • Tham số hóa các đối tượng với các yêu cầu khác nhau.
  • Xếp hàng hoặc lưu trữ lịch sử các lệnh (ví dụ: undo/redo).
  • Tách người gửi lệnh (invoker) khỏi người thực thi lệnh (receiver).

Cấu trúc của Command Pattern Command patte...

153 0 0
0
Avatar

Adapter Pattern trong Java

Adapter Pattern là gì? Adapter cho phép giao tiếp giữa 2 interface không tương thích bằng cách bao bọc (wrap) một lớp hiện tại bằng một lớp adapter để nó có thể sử dụng interface mong muốn.

Ví dụ minh họa:

Giả sử bạn có một interface MediaPlayer chỉ phát nhạc .mp3, nhưng bạn lại muốn phát .mp4 hoặc .vlc, bạn có thể tạo một MediaAdapter để chuyển đổi định dạng đó.

Cấu trúc Adapter Pattern

Cl...

105 0 0
0
Avatar

Builder Pattern trong Java

Design Pattern Builder là một mẫu thiết kế thuộc nhóm Creational Patterns trong Java, dùng để tạo đối tượng phức tạp từng bước một. Nó rất hữu ích khi một object có nhiều tham số (đặc biệt là khi một số tham số là tùy chọn), giúp code dễ đọc, dễ bảo trì, và tránh việc phải dùng quá nhiều constructor hoặc setter.

Tổng quan về Builder Pattern Khi một class có quá nhiều constructor (overloading) ...

174 0 0
1
Avatar

Design Pattern: hành trình của Builder Pattern - từ 60 dòng code Java đến 1 dòng code Kotlin

Trong giới võ lâm, Builder Pattern được biết đến như một trong những design pattern phổ biến thuộc nhóm Creational Pattern, giúp tạo ra đối tượng phức tạp theo cách linh hoạt và dễ đọc hơn. Có thể nhiều bạn đã gặp nó ngay trong các dòng code xung quanh mình nhưng không để ý. Với các ngôn ngữ lập trình trước đây, cách triển khai Builder Pattern có thể hơi dài dòng phức tạp, nhưng mình để ý thấy ...

585 7 4
  • Avatar
  • Avatar
6
Avatar

Cùng mình học DesignPattern: State 🟢🟡🟠🔴

Đây là bài viết nằm trong Series NestJS thực chiến, các bạn có thể xem toàn bộ bài viết ở link: https://viblo.asia/s/nestjs-thuc-chien-MkNLr3kaVgA Đặt vấn đề 📜 Xin chào mọi người, Design Pattern trước giờ luôn là một chủ đề rất hot trong giới lập trình của chúng ta, nó không nhất thiết là điều kiện cần nhưng nó lại là điều kiện đủ để chúng ta đạt được mức lương mong muốn trong hành trình theo đ...

341 0 3
  • Avatar
  • Avatar
2
Avatar

Design Pattern là gì? Các phân loại mà lập trình viên cần nắm vững

Mở đầu Trong quá trình phát triển phần mềm, lập trình viên thường xuyên đối mặt với những bài toán kỹ thuật phức tạp, đòi hỏi nhiều thời gian và kinh nghiệm để tìm ra hướng giải quyết hiệu quả.

Sau khi vượt qua những thử thách này, các lập trình viên sẽ tích lũy được những kinh nghiệm quý báu. Tuy nhiên, để chia sẻ các cách giải quyết tối ưu đó cho cộng đồng – giúp những lập trình viên khác kh...

169 1 0
0
Avatar

Design Patterns trong PHP: Từng bước giải bài toán tính khoảng cách

Tính khoảng cách giữa các điểm địa lý là một yêu cầu phổ biến trong nhiều ứng dụng. Trong bài viết này, chúng ta sẽ từng bước cải thiện một hệ thống tính khoảng cách đơn giản bằng cách áp dụng các design pattern phổ biến, biến nó thành một giải pháp linh hoạt và dễ bảo trì.

Vấn đề

Chúng ta cần tính khoảng cách giữa hai điểm địa lý với các yêu cầu sau:

  • Hỗ trợ nhiều phương thức tính toán (đư...
244 2 0
0
Avatar

Design pattern: Chain of Responsibility áp dụng trong dự án như thế nào?

Để thực thi mẫu thiết kế này thì đã có 1 framework hỗ trợ việc xây dựng đó là Apache Commons Chain

Mục đích: hỗ trợ việc xây dựng các ứng dụng có khả năng mở rông cao, nơi các bước xử lý được tổ chức thành một chuỗi (chain) và mỗi bước xử lý là một thành phần có thể tái sử dụng (handler)

Lớp ChainBase là một lớp triển khai mặc định của interface Chain trong Apache Commons Chain. Nó cho phép t...

184 0 0
0
Avatar

Tìm hiểu Design Pattern trong Java

Lời nói đầu Design Pattern là giải pháp điển hình cho các vấn đề thường gặp trong thiết kế phần mềm. Chúng giống như bản thiết kế được tạo sẵn mà bạn có thể tùy chỉnh để giải quyết vấn đề thiết kế thường gặp trong mã của mình. Bạn không thể chỉ tìm một mẫu và sao chép nó vào chương trình của mình, theo cách bạn có thể làm với các hàm hoặc thư viện có sẵn. Mẫu không phải là một đoạn mã cụ thể, ...

186 0 0
1
Avatar

Design pattern - Top Gun - Maverick, thinking strategy và adapter pattern

Top Gun: Maverick là một bộ phim rất thành công do Tom Cruise thủ vai chính (Maverick). Có một sự thật mà ít người biết đến là bộ phim lấy bối cảnh của một sự kiện có thật và đặc biệt hơn còn liên quan mật thiết đến chiến tranh Việt Nam.

Năm 1969, sau khi đắc cử tổng thống không lâu, Nixon tuyên bố chiến dịch Việt Nam hóa chiến tranh, bước đầu là không kích vào các cứ điểm của quân ta nhưng ...

362 1 2
  • Avatar
  • Avatar
2
Avatar

Design pattern - Builder chợ lớn

Chào mừng anh em trở lại với series Design Pattern thực chiến trong lập trình hướng đối tượng. Khi đối tượng có nhiều tham số hoặc cần nhiều bước khởi tạo, sử dụng các phương thức khởi tạo (constructor) truyền thống thường gây ra nhiều bất cập, có thể nêu ra như khó đọc, khó mở rộng đến dễ mắc lỗi.

Builder Pattern xuất hiện như một giải pháp hữu hiệu, giúp chúng ta tách biệt quá trình xây dự...

155 0 3
  • Avatar
  • Avatar
2
Avatar

Design pattern - Singleton

Chào mừng anh em trở lại với series Design Pattern thực chiến trong lập trình hướng đối tượng. Singleton là một trong những design pattern cơ bản và quan trọng nhất trong nhóm Creational Pattern.
Mục tiêu chính của nó là đảm bảo một class chỉ có duy nhất một instance trong suốt vòng đời của chương trình và cung cấp một điểm truy cập toàn cục tới instance này. Điều này rất hữu ích trong các t...

271 0 2
  • Avatar
  • Avatar
2
Avatar

Design pattern - Prototype

Chào mừng anh em trở lại với series Design Pattern thực chiến trong lập trình hướng đối tượng. Trong bài viết lần này, chúng ta sẽ tiếp tục khám phá một trong những pattern cơ bản khác – Prototype Pattern. Đây là một công cụ hữu ích giúp anh em tối ưu việc tạo ra các object mới mà không cần phải thiết lập lại toàn bộ từ đầu. Hãy cùng nhau đi sâu vào khái niệm, cơ chế hoạt động, cũng như cách ...

187 0 0
1
Avatar

Design pattern - Abstract factory implement trong Spring và Java khác gì nhau

Ở bài viết trước, chúng ta đã cùng nhau tìm hiểu về Factory Method và cách nó giúp đơn giản hóa việc khởi tạo các đối tượng trong các hệ thống phức tạp. Tiếp nối series Design Pattern thực chiến, bài viết này sẽ đưa bạn đến với một design pattern khác cũng không kém phần quan trọng và phổ biến trong lập trình hướng đối tượng: Abstract Factory.

I. Khái niệm và kiến trúc Trích từ cuốn Design p...

515 0 0
1
Avatar

Design pattern - Vào thư viện tìm Factory method

Factory method và các design pattern nói chung, chắc hẳn anh em đã nghe đến cả trăm ngàn lần rồi. Nhưng liệu anh em đã bao giờ dừng lại và tự hỏi: “Các thư viện Java ứng dụng Factory Method như thế nào?” Đây sẽ là bài mở đầu trong một series thực chiến, nơi chúng ta sẽ cùng nhau khám phá cách mà các thư viện Java ứng dụng design pattern này, cũng như các biến thể thú vị của nó. Hãy cùng tôi b...

339 0 6
  • Avatar
  • Avatar
1
Avatar

Design Pattern cùng Flutter. Tập 6: Strategy - "Chiến lược toàn năng"

Giới thiệu

Khi bạn muốn có nhiều thuật toán riêng của bạn và muốn thay đổi theo runtime.

Khi bạn muốn code của bạn không phải if else hay switch case tùm lum thứ.

Khi bạn muốn tách biệt thuật toán và tuân theo nguyên lý của SOLID (ở đây là S, O và L).

Khi bạn muốn sử dụng lại các thuật toán khác.

Đúng rồi, đây cũng là dấu hiệu mà bạn nên sử dụng mẫu thiết kế Strategy.

Vậy...

Strategy là ...

756 1 4
  • Avatar
  • Avatar
10
Avatar

Design Pattern cùng Flutter. Tập 4: Template Method - "Quy trình tạo nên chìa khoá"

Giới thiệu Mỗi ngày chúng ta đều phải thức dậy, mở mắt, đi đánh răng, rửa mặt, ăn sáng, đi làm, đi về nhà, ăn uống, đánh răng, đi ngủ, cứ liên tục lặp đi lặp lại, chúng ta hoạt động như một cái máy được lập trình sẵn những hành động mà chỉ cần thức dậy là đã phải làm ngay. Việc định nghĩa ra thứ cần làm trong một ngày mà lặp lui lặp lại, gọi là định nghĩa ra một bộ khung làm việc. Điều đặt biệt...

445 0 3
  • Avatar
  • Avatar
9
Avatar

Decorator trong TypeScript

Trong bài viết này, chúng ta sẽ tìm hiểu về Decorator trong TypeScript, một tính năng mạnh mẽ giúp mở rộng và thay đổi hành vi của các class, method, property và parameter. Decorator giúp làm cho code trở nên dễ đọc và dễ bảo trì hơn. Hãy cùng khám phá cách sử dụng và những lợi ích mà Decorator mang lại.

  1. Decorator là gì?

Decorator là một function đặc biệt được dùng để thay đổi hoặc mở rộng...

1.7K 3 0
5
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí