Singleton Pattern – Một object duy nhất

Singleton Pattern - Một object duy nhất Xin chào các bạn, hôm nay chúng ta sẽ tiếp tục làm quen với một mẫu Design Pattern mới: Singleton pattern. Cái tên đã nói lên tất cả, nếu muốn trong suốt chương trình chỉ tồn tại duy nhất một đối tượng của một lớp nào đó thì … Continue reading Singleton Pattern – Một object duy nhất

Mediator and Facade Differences

The facade only exposes the existing functionality from a different perspective. The mediator "adds" functionality because it combines different existing functionality to create a new one. You have a logging system. From that logging system you can either log to a file, to a socket, or to a database. Using the facade design pattern you … Continue reading Mediator and Facade Differences

How to get rid of helper and utils classes

There you go once again, while performing a code review or after having justified a quick coding in the name of urgency and priority: it clearly stand in front of you yet another helper class. But everything works fine and the show must go on, release after release, so that helper class soon becomes a monster class, providing tons … Continue reading How to get rid of helper and utils classes

Factory Pattern – Nhà máy của những đối tượng

Factory Pattern Chào mọi người, hôm nay mình sẽ tiếp tục loạt bài về Design Pattern với một pattern mới: Factory Pattern. Pattern này sẽ giúp chúng ta có một hướng giải quyết đúng đắn khi đối mặt với việc phải dùng những lệnh if/else trong khối xử lý để tạo ra những đối tượng … Continue reading Factory Pattern – Nhà máy của những đối tượng

Why extends is evil

Improve your code by replacing concrete base classes with interfaces The extends keyword is evil; maybe not at the Charles Manson level, but bad enough that it should be shunned whenever possible. The Gang of Four Design Patterns book discusses at length replacing implementation inheritance (extends) with interface inheritance (implements). Good designers write most of their code in terms … Continue reading Why extends is evil

Strategy Pattern – Chiến lược với những thay đổi

Chào mừng đến với THẾ GIỚI VỀ SỰ CHUẨN MỰC TRONG VIỆC THIẾT KẾ VÀ XÂY DỰNG KIẾN TRÚC CHƯƠNG TRÌNH. Như đã nói ở bài trước, mình sẽ bắt đầu viết những đoạn code đơn giản để minh họa bài toán CON VỊT áp dụng các kỹ thuật trong lập trình hướng đối tượng … Continue reading Strategy Pattern – Chiến lược với những thay đổi

Design Pattern – Mở đầu

Design Pattern Chào mọi người, đây là bài viết đầu tiên trong loạt bài về Design Pattern (Mẫu thiết kế). Ở bài viết này mình sẽ nói ngắn về khái niệm Mẫu thiết kế, công dụng của nó và đưa ra một bảng phân loại về một số mẫu thiết kế thông dụng. Mẫu thiết … Continue reading Design Pattern – Mở đầu

The Law of Demeter Principle

The Law of Demeter Principle (Tạm dịch là luật cho người thứ 3 - đùa đó) Một đoạn hội thoại "Giờ anh tính giải quyết thế nào về chuyện này?""Ah... anh...""Tôi không biết, chuyện của anh và cô ấy, tốt nhất là anh nên tự giải quyết riêng với cô ấy. Đừng để đến lúc … Continue reading The Law of Demeter Principle

The Dependency Inversion Principle

The Dependency Inversion Principle (DIP) (Tạm dịch là nguyên lý đảo ngược sự phụ thuộc) Đây là nguyên lý cuối cùng trong 5 nguyên lý cơ bản trong thiết kế hướng đối tượng SOLID. Nguyên lý này chỉ ra rằng các lớp high-level không được phụ thuộc vào các lớp low-level. Thay vì để các … Continue reading The Dependency Inversion Principle

The Interface Sergregation Principle

The Interface Segregation Principle (Nguyên lý phân tách interface) Đây là nguyên lý thứ 4 trong 5 nguyên lý của thiết kế hướng đối tượng SOLID. Nó giúp giảm sự cồng kềnh, dư thừa không cần thiết cho phần mềm và quan trọng hơn là giảm sự kết dính làm hạn chế tính linh động (flexibility) … Continue reading The Interface Sergregation Principle