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. Return … Continue reading Avoid NullPointerException in Java
Tag: Design Pattern
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ảo … Continue 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 boby … Continue 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ột … Continue 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 you … Continue 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ượ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