Một thành phần trong OOP thường có 2 phần: Phần trừu tượng (abstraction) định nghĩa các chức năng và phần thực thi (implementation) các chức năng được định nghĩa trong phần trừu tượng. Hai phần này liên hệ với nhau thông qua quan hệ kế thừa. Những thay đổi trong phần trừu tượng dẫn đến các […]
Design Pattern là một kỹ thuật trong lập trình hướng đối tượng, nó khá quan trọng và mọi lập trình viên muốn giỏi đều phải biết. Được sử dụng thường xuyên trong các ngôn ngữ OOP. Nó sẽ cung cấp cho bạn các "mẫu thiết kế", giải pháp để giải quyết các vấn đề chung, thường gặp trong lập trình. Các vấn đề mà bạn gặp phải có thể bạn sẽ tự nghĩ ra cách giải quyết nhưng có thể nó chưa phải là tối ưu. Design Pattern giúp bạn giải quyết vấn đề một cách tối ưu nhất, cung cấp cho bạn các giải pháp trong lập trình OOP.
Trong Design Pattern có 3 nhóm bao gồm:
- Creational Pattern (nhóm khởi tạo) gồm: Abstract Factory, Factory Method, Singleton, Builder, Prototype. Nó sẽ giúp bạn trong việc khởi tạo đối tượng, như bạn biết để khởi tạo bạn phải sử dụng từ khóa new, nhóm Creational Pattern sẽ sử dụng một số thủ thuật để khởi tạo đối tượng mà bạn sẽ không nhìn thấy từ khóa này.
- Structural Pattern (nhóm cấu trúc) gồm: Adapter, Bridge, Composite, Decorator, Facade, Proxy và Flyweight.. Nó dùng để thiết lập, định nghĩa quan hệ giữa các đối tượng.
- Behavioral Pattern gồm: Interpreter, Template Method, Chain of Responsibility, Command, Iterator, Mediator, Memento, Observer, State, Strategy và Visitor. Nhóm này dùng trong thực hiện các hành vi của đối tượng.
Design Pattern có 23 mẫu cơ bản(GoF) và bên dưới là các bài hướng dẫn về Design Pattern:
Hướng dẫn Java Design Pattern – Adapter
Trong các bài viết trước chúng ta đã cùng tìm hiểu về các Pattern thuộc nhóm Creational Design Pattern. Trong bài này, chúng ta sẽ tìm hiểu qua một Pattern khác thuộc nhóm Structural Design Pattern là Adpater Pattern. Adapter Pattern là gì? Adapter Pattern is a structural design pattern that convert the interface of a […]
Hướng dẫn Java Design Pattern – Object Pool
Trong OOP, một class có thể có rất nhiều instance nhưng ngược lại Singleton là một dạng class mà chỉ hỗ trợ tối đa một instance duy nhất và một đối tượng khi đã được khởi tạo sẽ tồn tại suốt vòng đời chương trình. Trong một số trường hợp, chúng ta cần khởi tạo và […]
Hướng dẫn Java Design Pattern – Builder
Các hàm xây dựng (constructor) trong Java được sử dụng để tạo đối tượng và có thể lấy các tham số cần thiết để tạo đối tượng. Vấn đề khi một đối tượng có thể được tạo ra với nhiều tham số (param), một số có thể là bắt buộc và một số khác có […]
Hướng dẫn Java Design Pattern – Prototype
Trong Java, khi tạo một đối tượng mới thì các thuộc tính của đối tượng chưa được khởi tạo, ngoại trừ giá trị default hoặc được khởi tạo trong constructor. Tuy nhiên, thay vì tạo một đối tượng mới thì ta muốn sao chép một đối tượng khác đã tồn tại. Chúng ta có thể […]
Hướng dẫn Java Design Pattern – Abstract Factory
Trong bài trước chúng ta đã tìm hiểu về Factory Method Pattern. Trong bài này chúng ta tiếp tục tìm hiểu một Pattern khác trong nhóm Creational Design Pattern là Abstract Factory Design Pattern. Abstract Factory Pattern là gì? Abstract Factory is a creational design pattern that provide an interface for creating families of related or dependent objects without specifying […]
Hướng dẫn Java Design Pattern – Factory Method
Trong bài trước chúng ta đã tìm hiểu về Singleton Design Pattern. Trong bài này chúng ta tiếp tục tìm hiểu một Pattern khác trong nhóm Creational Design Pattern là Factory Method Design Pattern. Factory Method Pattern là gì? Factory Method is a creational design pattern that Define an interface for creating an object, but let subclasses […]
Hướng dẫn Java Design Pattern – Singleton
Đôi khi, trong quá trình phân tích thiết kế một hệ thống, chúng ta mong muốn có những đối tượng cần tồn tại duy nhất và có thể truy xuất mọi lúc mọi nơi. Làm thế nào để hiện thực được một đối tượng như thế khi xây dựng mã nguồn? Chúng ta có thể […]