Bài đăng

Hiển thị các bài đăng có nhãn oop

Singleton design pattern

Hình ảnh
     Chắc có lẽ bạn đã một vài lần nghe qua singleton design pattern. Vậy singleton là gì? Và khi nào nên dùng nó,  chúng ta hãy cùng tìm hiểu nhé. 1. Singleton là gì?      S ingleton  là tên của  một  design pattern   thuộc nhóm creational . Mục đích của nó là đảm bảo một đổi tượng sẽ được khởi tạo đúng một lần duy nhất, nghĩa là nếu đối tượng đó chưa được khởi tạo thì sẽ tạo ra đổi tượng đó, nếu đối tượng đã được khởi tạo nó sẽ không tạo ra nữa mà sẽ trả về đối tượng đã có sẵn. 2. Tại sao không nên khởi tạo một đối tượng nhiều lần?     Ví dụ trong code của bạn rất thường xuyên log lại những message (lỗi, cảnh báo...) để có thể trace nếu cần, thậm chí trong một hàm có đến 3 đến 4 chỗ sử dụng hàm log . Việc bạn khởi tạo nhiều đối tượng cũng không cần thiết lắm, thế nên đối tượng Logger nên tạo ra đúng một lần duy nhất. 3. Triển khai singleton như thế nào ?    Mình sẽ ví dụ singleton bằng PHP code nhé. 4. Nhược điểm của Singleton?      - Bên cạnh những ưu điểm trên, singleton cũng mang

Static method trong PHP và khi nào nên sử dụng chúng

Hình ảnh
  Static method là gì ?      Trong lập trình, static method (phương thức tĩnh) là một phương thức thuộc về class và có thể được gọi mà không cần tạo ra một đối tượng của class đó. Chúng được khai báo với từ khóa static và có thể được truy cập bằng cách sử dụng tên class, dấu hai chấm (::) và tên phương thức. Static method rất hữu ích khi bạn muốn sử dụng một phương thức thuộc về một class mà không cần phải tạo một đối tượng của class đó      Tuy nhiên, để có thể sử dụng tốt static method thì chúng ta cũng nên tìm hiểu về ưu và nhược điểm của chúng. Vậy hãy cũng xem chúng có ưu và nhược điểm gì nhé. 1. Không cần khởi tạo đối tượng      Việc sử dụng static method giúp giảm thiểu sự tốn kém về tài nguyên bộ nhớ và tốc độ thực thi chương trình, bởi vì bạn không cần phải tạo ra một đối tượng mới để gọi phương thức.      Một class có thể có cả static và non-static method. Một static method có thể truy cập từ một phương thức cùng trong đối tượng của class bằng cách sử dụng từ khóa self

Strategy Design Pattern

Hình ảnh
         1. Strategy design pattern là gì?     -  Trong design pattern được chia làm 3 nhóm chính: creational  pattern , structural  pattern , behavior pattern. Và s trategy design pattern thuộc nhóm b ehavior pattern.      - Nó cho phép định nghĩa tập hợp các thuật toán, đóng gói từng thuật toán lại , và dễ dàng thay đổi linh hoạt các thuật toán bên trong object. Strategy cho phép thuật toán biến đổi độc lập khi người dùng sử dụng chúng.          2. Những trường hợp có thể áp dụng strategy:     - Trong một dự án có chức năng convert hình ảnh jpg sang có loại khác, ban đầu chỉ có loại convert sang png. Ban đầu chúng ta chỉ cần xây dựng 1 class ImageConvertor với hàm convertTo và truyền vào image. Image converter class      - Vấn  đề: Sau một thời gian thì dự án bắt đầu phát triển và yêu cầu chúng ta thêm những loại convert khác như webp, tiff, gif và có thể sau này sẽ thêm nhiều loại convert khác nữa. Giải quyết vấn đề:      -  Vào thẳng hàm  convert để sửa if else trong đó. Cách này