Avoid NullPointerException in Java

I would like to share with you some tips to deal/prevent NPE in your code: The BIG IMPORTANT rule: do NOT assign / pass / return null value and keep your code as cohesive as possible. Programming tips / techniques: 1. Return an empty collections instead of null. For example: List: Set: Map: 2. ReturnContinue reading “Avoid NullPointerException in Java”

Refactoring to Patterns – Joshua Kerievsky [PDF, ePub]

Giới thiệu Đây là cuốn sách cực hay của tác giả Joshua Kerievsky. Nó giúp chúng ta hiểu và apply các principle, design pattern vào trong chương trình thông qua việc phân tích những đoạn code hiện tại để tìm ra các code smell, sau đó sẽ từng bước tiến hành refactor chúng theo đúng pattern. Nội dung tham khảoContinue reading “Refactoring to Patterns – Joshua Kerievsky [PDF, ePub]”

Template Method Pattern – Khuôn mẫu cho tất cả

Template Method 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: Template Method Pattern. Từ template làm chúng ta liên tưởng đến các template trong thiết kế web, khi chúng ta có 1 trang templae đã có sẵn header, footer, navigation, chỉ riêng phần bobyContinue reading “Template Method Pattern – Khuôn mẫu cho tất cả”

Facade pattern – Đơn giản hóa tất cả

Facade 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: Facade Pattern. Cái tên nghe rất lạ nhưng khi bước vào implement, các bạn sẽ thấy đây là mẫu pattern gần gũi và được sử dụng nhiều nhất trong chương trình. Định nghĩa Nói mộtContinue reading “Facade pattern – Đơn giản hóa tất cả”

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 youContinue reading “Mediator and Facade Differences”

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ượngContinue 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 termsContinue 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ượngContinue 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ếtContinue reading “Design Pattern – Mở đầu”