Trong bài viết này, chúng ta sẽ cùng tìm hiểu về Adapter Design Pattern qua cấu trúc, cánh triển khai, ví dụ, đánh giá và ứng dụng của nó. Đây là bài viết đầu tiên của mình nên sẽ không tránh khỏi sai sót, rất mong nhận được sự thông cảm và góp ý từ mọi người. 1. Tổng quan 1.1. Phân loại Adapter là 1 design pattern thuộc nhóm Structural Pattern. Structural Pattern bao gồm những pattern cung cấp các...
Design Pattern C# Design Patterns Adapter Pattern Structural Design PatternChương 7 Áp dụng mẫu thiết kế hướng đối tượng trong swift (Chú ý Chương này rất dài) Trong xuất bản lần đầu của Gang of Four’s Design Patterns: Elements of Reusable Object- Oriented Software tháng 10 năm 1994. Tôi chỉ chú ý đến những mẫu thiết kế này từ 10 đến 12 năm về trước. Giống hầu hết những lập trình viên có kinh nghiệm, khi tôi lần đầu đọc về những mẫu thiết kế. Tôi nhận ra...
Swift Protocol Oriented Programming Design Patterns iOS DevelopmentDạo này tôi có một mối duyên rất tình cờ với việc làm các phần mềm thuộc lĩnh vực tài chính và ngân hàng. Một số bài toán trong lĩnh vực này làm tôi nhớ đến những ngày đầu làm việc với phần mềm Trinet Expense tôi đã phát triển 1 kỹ thuật để tạo ra việc cấu hình các policy kiểm tra các báo cáo về chi phí. Trong phạm vi ngày hôm nay tôi sẽ giới thiệu 1 bài toán tương tự tôi gặp...
Design Patterns OOPKhám phá cách làm cho code Android của bạn clean hơn và dễ hiểu hơn với các design patterns phổ biến khi lập trình Android. Bài viết này sẽ giới thiệu các Design Patterns và App Architectures phổ biến nhất mà bạn có thể sử dụng trong khi phát triển ứng dụng. Hiểu đơn giản thì Design patterns là giải pháp có thể tái sử dụng cho các vấn đề phần mềm thông thường. Còn App Architecture cung cấp giải...
Kotlin Android Design Patterns Clean ArchitectureDesign Pattern là một giải pháp chung để giải quyết các vấn đề phổ biến khi thiết kế phần mềm trong lập trình hướng đối tượng OOP. Định nghĩa Design pattern là các giải pháp tổng thể đã được tối ưu hóa, được tái sử dụng cho các vấn đề phổ biến trong thiết kế phần mềm mà chúng ta thường gặp phải hàng ngày. Design patterns là một kỹ thuật trong lập trình hướng đối tượng,...
Design Pattern Design Patterns Clean Code lập trình hướng đối tượng Design Partern1. Giới thiệu Singleton là một trong số 5 design patterns thuộc nhóm Creational Design Pattern - nhóm hỗ trợ khởi tạo class. Nó đảm bảo một class chỉ có duy nhất một instance được khởi tạo và nó cung cấp phương thức truy cập đến instance đó từ mọi nơi (global access). Sử dụng Singleton khi chúng ta muốn: Đảm bảo rằng chỉ có một instance của lớp. Việc quản lý việc truy cập tốt hơn vì chỉ có...
singleton Design Patterns Creational Patterns Design Partern Creational Design PatternDesign Pattern là một giải pháp chung để giải quyết các vấn đề phổ biến khi thiết kế phần mềm trong lập trình hướng đối tượng OOP. Định nghĩa Design pattern là các giải pháp tổng thể đã được tối ưu hóa, được tái sử dụng cho các vấn đề phổ biến trong thiết kế phần mềm mà chúng ta thường gặp phải hàng ngày. Design patterns là một kỹ thuật trong lập trình hướng đối tượng,...
Design Pattern Design Patterns Clean Code lập trình hướng đối tượng Design Partern1. Giới thiệu Factory method (hay còn gọi là virtual constructor) là một mẫu thiết kế thuộc nhóm Creational Patterns – những mẫu thiết kế cho việc khởi tạo đối tượng của lớp Khi chúng ta muốn tạo ra một object của một type nào đấy, nhưng chúng ta không biết rõ mình sẽ phải tạo ra cái gì, mà nó phải dựa vào một số điều kiện business logic đầu vào để tạo ra object tương ứng, thì chúng ta...
Design Pattern Design Patterns Creational Patterns Creational Design Pattern Factory method pattern1. Giới thiệu Abstract Factory (Kit) là một design pattern thuộc nhóm Creational Pattern Design – những mẫu thiết kế cho việc khởi tạo đối tượng của lớp Được xây dựng dựa trên Factory Pattern và nó được xem là một factory cao nhất trong hệ thống phân cấp. Pattern này sẽ tạo ra các factory là class con của nó và các factory này được tạo ra giống như cách mà factory tạo ra các sub-class. Mục đích:...
Design Patterns Creational Patterns Abstract Factory Design Partern Creational Design Pattern1. Giới thiệu Adapter (wrapper) là một mẫu thiết kế thuộc nhóm Structural Pattern – những mẫu thiết kế cho việc thiết kế cấu trúc Là mẫu thiết kế chuyển đổi khuôn mẫu (interface) của một lớp thành một khuôn mẫu khác mà phía clients muốn. Cho phép 2 khuôn mẫu không liên quan làm việc cùng nhau. Adapter Pattern giữ vai trò trung gian giữa hai lớp, chuyển đổi interface của một hay nhiều lớp có sẵn...
Design Patterns Adapter Pattern Adapter Structural Patterns Design Partern1. Giới thiệu Bridge Pattern là một trong những Pattern thuộc nhóm Structural Pattern. Ý tưởng của nó là tách tính trừu tượng (abstraction) ra khỏi tính hiện thực (implementation) của nó. Từ đó có thể dễ dàng chỉnh sửa hoặc thay thế mà không làm ảnh hưởng đến những nơi có sử dụng lớp ban đầu. Sử dụng Bridge Patern khi chúng ta muốn: Khi bạn muốn tách ràng buộc giữa Abstraction và Implementation,...
Design Pattern Design Patterns Structural Design Pattern Structural Patterns1. Giới thiệu Builder là một mẫu thiết kế thuộc nhóm Creational Pattern – những mẫu thiết kế cho việc khởi tạo đối tượng của lớp Builder Pattern là một mẫu thiết kế được dùng để cung cấp một giải pháp linh hoạt cho các vấn đề tạo đối tượng (object) khác nhau trong lập trình hướng đối tượng. Cho phép bạn xây dựng các đối tượng phức tạp bằng cách sử dụng các đối...
Builder partern Design Pattern Design Patterns Creational Patterns Creational Design Pattern1. Giới thiệu Prototype là một design pattern thuộc nhóm Creational Pattern - những mẫu thiết kế cho việc khởi tạo object của lớp. Prototype quy định loại của các đối tượng cần tạo bằng cách dùng một đối tượng mẫu, tạo mới nhờ vào sao chép đối tượng mẫu này mà không làm cho code phụ thuộc vào các lớp của chúng. Prototype Pattern được dùng khi việc tạo một object tốn nhiều chi phí và...
Design Pattern Design Patterns prototype Creational Design Pattern Prototype Pattern1. Giới thiệu Composite là một mẫu thiết kế thuộc nhóm cấu trúc (Structural Pattern). Composite Pattern là một sự tổng hợp những thành phần có quan hệ với nhau để tạo ra thành phần lớn hơn. Nó cho phép thực hiện các tương tác với tất cả đối tượng trong mẫu tương tự nhau. Tần suất sử dụng: khá cao 2. Mục đích ra đời Composite Pattern được sử dụng khi chúng ta cần xử lý một nhóm đối...
Design Pattern Design Patterns Structural Design Pattern Structural Patterns Composite Pattern1. Giới thiệu Phân loại: Structural pattern Bí danh: Wrapper Mục đích: Mở rộng tính năng của một object tại run-time, decorator cung cấp một sự thay thế linh hoạt cho subclass để mở rộng tính năng của object Tần suất sử dụng: bình thường 2. Mục đích ra đời Hãy tưởng tượng rằng bạn đang làm việc với một thư viện thông báo cho phép các chương trình khác thông báo cho người dùng của họ về...
Decorator Pattern Design Patterns Structural Design Pattern Structural Patterns Decorator1. Giới thiệu Flyweight là một mẫu thiết kế thuộc nhóm Structural Pattern – những mẫu thiết kế giúp dễ dàng thiết kế bằng cách xác định một cách hiện thực hóa mối quan hệ giữa các thực thể. Mẫu thiết kế Flyweight là một mẫu thiết kế cấu trúc cho phép bạn lắp nhiều đối tượng hơn vào dung lượng RAM có sẵn bằng cách chia sẻ, phân phối các phần trạng thái chung - riêng giữa nhiều...
Design Pattern Design Patterns Structural Design Pattern Structural Patterns1. Giới thiệu State Pattern là một mẫu thiết kế thuộc nhóm Behavioral Pattern – những mẫu thiết kế xác định các mẫu giao tiếp chung giữa các object. Từ đó các mẫu này tăng tính linh hoạt trong việc thực hiện việc giao tiếp giữa các object. State Pattern là một mẫu thiết kế hành vi cho phép một object thay đổi hành vi của nó khi trạng thái bên trong của nó thay đổi. Nó là một trong những mẫu...
Design Pattern Design Patterns Behavioral Design Pattern Behavioral state design pattern1. Giới thiệu Proxy (hay còn gọi là Surrogate) là một mẫu thiết kế thuộc nhóm cấu trúc (Structural Pattern). Điều khiển gián tiếp việc truy xuất đối tượng thông qua một đối tượng được ủy nhiệm Cung cấp 1 class đại diện để quản lí sự truy xuất đến thành phần của 1 class khác Giải quyết vấn đề security, perfomance, validation,… Tần suất sử dụng: khá cao 2. Mục đích ra...
Design Pattern Design Patterns Structural Design Pattern Structural Patterns1. Giới thiệu Phân loại: Behavior Pattern Mục đích: Template Method xây dựng một bộ khung thuật toán trong một toán tử, để lại việc định nghĩa một vài bước cho các subclass mà không làm thay đổi cấu trúc chung của thuật toán. Tần suất sử dụng: trung bình 2. Mục đích ra đời Problem Giả sử khi tạo một ứng dụng khai thác dữ liệu để phân tích các tài liệu của công ty. Người dùng cung cấp...
Design Patterns Behavioral Design Pattern Behavioral template method1. Giới thiệu Visitor là một mẫu thiết kế thuộc nhóm Behavior Pattern Visitor còn được biết đến như là Double dispatch Cho phép định nghĩa các operation trên một tập hợp các đối tượng không đồng nhất về kiểu mà không làm thay đổi định nghĩa về lớp của các đối tượng đó. Cho phép tách các thuật toán khỏi các đối tượng mà chúng hoạt động. Giúp phục hồi lại kiểu dữ liệu bị mất...
Design Pattern Design Patterns Behavioral Design Pattern Behavioral Visitor Pattern1. Giới thiệu Phân loại: Behavior Pattern Mục đích: Memento cho phép người lưu trữ và hồi phục các phiên bản cũ của 1 object mà không can thiệp vào nội dung của object đó. 2. Mục đích ra đời Problem Tưởng tượng bạn đang tạo 1 text editor. Bao gồm các chức năng như chỉnh sửa text, format text, thêm ảnh, v.v.. Để phát triển thêm app, bạn quyết định cho phép người dùng undo và redo bất kỳ thao tác...
Design Pattern Design Patterns Behavioral Design Pattern Behavioral Memento Pattern1. Giới thiệu Mediator Pattern là một trong những Pattern thuộc nhóm hành vi (Behavior Pattern). Mediator có nghĩa là người trung gian. Pattern này nói rằng “Định nghĩa một đối tượng gói gọn cách một tập hợp các đối tượng tương tác. Mediator thúc đẩy sự khớp nối lỏng lẻo (loose coupling) bằng cách ngăn không cho các đối tượng đề cập đến nhau một cách rõ ràng và nó cho phép bạn thay đổi sự...
Design Pattern Design Patterns Behavioral Design Pattern Behavioral Mediator1. Giới thiệu Chain of Responsibility là một mẫu thiết kế thuộc nhóm hành vi (Behavioral Pattern). Mục đích: cho phép một đối tượng gửi một yêu cầu nhưng không biết đối tượng nào sẽ nhận và xử lý nó. Điều này được thực hiện bằng cách kết nối các đối tượng nhận yêu cầu thành một chuỗi (chain) và gửi yêu cầu theo chuỗi đó cho đến khi có một đối tượng xử lý nó. Chain of...
Design Patterns Behavioral Design Pattern Chain of Responsibility Pattern Chain of Responsibility Behavioral1. Giới thiệu Iterator hay còn gọi là Cursor là một mẫu thiết kế thuộc nhóm hành vi (Behavioral Pattern). Iterator được thiết kế cho phép xử lý nhiều loại tập hợp khác nhau bằng cách truy cập những phần tử của tập hợp với cùng một phương pháp, cùng một cách thức định sẵn, mà không cần phải hiểu rõ về những chi tiết bên trong của những tập hợp này. Nói cách khác, một Iterator được...
Design Pattern Design Patterns Behavioral Design Pattern Iterator Pattern IteratorĐây là 1 series mình hệ thống lại những gì mình đã học về các design pattern cơ bản. Có thể vẫn có nhiều sai sót hi vọng được bổ sung thêm I. Khái niệm design pattern Design pattern có thể hiểu là một tài liệu thực hành tốt nhất hay cốt lõi của một giải pháp nhằm giải quyết một nhóm các vấn đề cụ thể đã được thực hành đối với nhiều môi trường khác nhau. 1. Tính chất Là các tài...
Design PatternsCollectional Pattern Tiếp theo trong series sẽ là bài tổng hợp các collectional patterns. Chức năng chính, giống như tên gọi của nó, nhằm giúp xử lý với các thao tác trên tập hợp với các mục đích như: xử lý, thao tác trên các nhóm, tập hợp object kết hợp các class và object để khởi tạo một cấu trúc lớn hơn thiết kế tốt nhất cho một class mà các instance của nó sẽ không chứa các dữ liệu bị...
Design Patterns