Wednesday, October 14, 2015

Check input String is numeric

public static void main(String[] args) {
        String a= "";
        System.out.println(isNumeric(a));
        System.out.println(isNumber(a));
    }
   
    public static boolean isNumeric(String string) {
        return string.matches("\\d+");
    }
   
    public static boolean isNumber(String string) {
        for (int i = 0; i < string.length(); i++) {
            if (!Character.isDigit(string.charAt(i)))
                return false;
         }
         return true;
}

Thursday, October 8, 2015

[Design Pattern Tutorial] - Design Pattern Là Gì?

Để tìm hiểu về Design Pattern, trước hết chúng ta cần hiểu tổng quan Design Pattern là gì?
- Design Pattern là một thể hiện, tổng quan tốt nhất từ những bài toán thực tế được đúc rút từ những kinh nghiệm phát triển phần mềm hướng đối tượng.
- Design Pattern là giải pháp cho những vấn đề chung mà các nhà phát triển phải đối mặt trong quá trình phát triển phần mềm.
- Các giải pháp này thu được bằng các thử nghiệm, lỗi ... bởi nhiều nhà phát triển phần mềm trong thời gian dài.

Với loạt bài hướng dẫn này sẽ đưa cho bạn những ví dụ trong java, giúp bạn tiếp cận những khái niệm trong Design Pattern một cách dễ dàng.

Khi nhắc đến Design Pattern thì trước tiên chúng ta phải nhắc tới  GOF?
- GOF là viết tắt của Gang Of Four
- Tại sao lại là Gang Of Four, năm 1994 có 4 tài năng Erich Gamma, Richard Helm, Ralph Johnson và John Vlissides đã xuất bản cuốn sách Design Patterns - Elements of Reusable Object-Oriented Software, khởi xướng khải niệm Design Pattern in Software development
- Theo tác giả thì Design Pattern chủ yếu dựa trên nguyên tắc thiết kế của lập trình hướng đối tượng sau:
  • Program to an interface not an implementation
  • Favor object composition over inheritance


Sử dụng Design Pattern như thế nào, cách sử dụng ra sao?
Các mẫu thiết kế có hai công dụng chính trong việc phát triển phần mềm như sau:

1. Làm nền tảng chung cho các nhà phát triển
Các mẫu thiết kế cung cấp một thuật ngữ tiêu chuẩn và được cụ thể cho kịch bản cụ thể.
Ví dụ, một mẫu thiết kế Singleton tức là sử dụng các đối tượng duy nhất để tất cả các nhà phát triển quen thuộc với mẫu thiết kế Singleton sẽ sử dụng các đối tượng duy nhất và họ có thể nói với nhau rằng chương trình đang theo đuổi một mô hình Singleton .

2. Thực tiễn tốt nhất
Các mẫu thiết kế đã được phát triển qua một thời gian dài và họ cung cấp các giải pháp tốt nhất cho vấn đề nhất định phải đối mặt trong quá trình phát triển phần mềm. Học được những mô hình giúp các nhà phát triển chưa từng trải học thiết kế phần mềm một cách dễ dàng và nhanh hơn.

Các loại mẫu thiết kế nào?
Theo mô hình thiết kế cuốn sách tham khảo Design Patterns - Elements of Reusable Object-Oriented Software , có 23 mẫu thiết kế mà có thể được phân thành ba loại: Creational, Structural and Behavioral patterns. We'll also discuss another category of design pattern: J2EE design patterns.

1 Creational Patterns
These design patterns provide a way to create objects while hiding the creation logic, rather than instantiating objects directly using new opreator. This gives program more flexibility in deciding which objects need to be created for a given use case.

2 Structural Patterns
These design patterns concern class and object composition. Concept of inheritance is used to compose interfaces and define ways to compose objects to obtain new functionalities.

3 Behavioral Patterns
These design patterns are specifically concerned with communication between objects.

4 J2EE Patterns
These design patterns are specifically concerned with the presentation tier. These patterns are identified by Sun Java Center.

Để chuẩn bị học Design Pattern bạn cần phải nắm chắc các khái niệm sau:
- Bốn đặc tính của OOP: Thừa kế, Đa hình, Trừu tượng, Bao đóng.
- Khái niệm interface và abstract.
- Bỏ tư duy theo lối cấu trúc, nâng cao tư duy OOP.