Bài đăng

[Tut 3 - Design Pattern] Adapter

Pattern Adapter là gì? Mẫu adapter chuyển đổi giao diện thành một giao diện khác mà phù hợp với yêu cầu. Giúp kết nối các lớp có giao diện không tương thích để làm việc với nhau Dùng nó trong trường hợp nào? Khi ta muốn chuyển đổi một lớp với một giao diện thành giao diện mà ta mong muốn. Xậy dựng, mở rộng các phương thức của lớp có sẵn phù hợp với yêu cầu. Tái sử dụng giao diện cũ. Giảm thiểu việc viết lại mã lệnh. Dùng nó như thế nào? - Tình huống: Thực tế: Có một công ty muốn mỏ rông công ty bằng cách chuyển địa điểm làm việc. Khi chuyển địa điểm thì có thêm các cơ sở mới. Trong Java: giả sử ta đã có lớp với phương thức có sẵn để hiển thị 1 chuồi như sau ra màn hình: void ShowName (String str) với chuỗi đã được chuẩn hóa nhưng chương trình mới yêu cầu ta phải hiển thị một danh sách các chuỗi được chuẩn hóa với giao diện mới. - Xử lí tình huống: Tình huống 1 : Có người để xuất ý kiến ta sẽ mua toàn bộ các cơ sở vật chất đề phù hợp với môi trường mới. Nhưng có một

Công cụ mã nguồn mở BlueFish

Giới thiệu những tính năng cơ bản của BlueFish. Công cụ mã nguồn mở BlueFish de Tráng Hà Viết

Cách đảo ngược một chuỗi String trong Java (How to Reverse A String In Java)

In This Tutorial We Will Discuss  How To Reverse A String In Java . Although There Are Many Ways To Get The Solution But We Are Sharing 5 Different Ways To  Reverse A String. This Question Is Frequently Asked In The Technical Interview Of Java.This Question Is Easy , But Please Mark This Question In Your To Do List Before Attending Any Technical Interview In Java. First We Will Understand The Question By Writing Example. Input :   Alive is awesome Output : emosewa si evilA Input : Be in present Output : tneserp ni eB Points to Keep in Mind Before attempting the Solution: 1. String class in java do not have reverse() method , StringBuilder class does have built in reverse() method. 2. StringBuilder class do not have toCharArray() method , while String class does have toCharArray() method. Pseudo Code for Reverse String Method 1: 1. The user will input the string to be reversed. 2. First we will convert String to character array by using the built in java String class met

Sự khác nhau giữa Iterator và ListIterator trong Java

Khi sử dụng Java Collections ta thường hay sử dụng Iterator để duyệt danh sách giữa các phần tử, tuy nhiên ta cũng có một cách khác đó là sủ dụng ListIterator. Sự khác nhau cơ bản giữa Iterator và ListIterator trong Java là ListIterator có thể duyệt lùi về phía trước, còn Iterator thì không! Code: import java.util.ArrayList; import java.util.List; import java.util.ListIterator; public class ListAndListIterator { public static void main(String[] args) { // Tạo một đối tượng List (Chỉ chứa các String) List list = new ArrayList (); list.add("Một"); list.add("Hai"); list.add("Ba"); list.add("Bốn"); // Lấy ra đối tượng ListIterator để duyệt danh sách. ListIterator listIterator = list.listIterator(); // Hiện tại con trỏ đang đứng tại ví trí đầu danh sách. // Đứng tại chỉ số 0. // Lấy ra phần tử đầu tiên trong danh sách, con trỏ tiến một bước. String

[Tut 2 - Design Pattern] Singleton

Pattern Singleton là gì? Mẫu thiết kế singleton đảm bảo chỉ duy nhất môt thực thể của một class được tạo ra và nó sẽ cung cấp cho bạn một phương thức để truy cập đến thực thế đó. Kiểm soát việc tạo ra các thực thể nhưng có thể lấy ra thực thế. Dùng nó trong trường hợp nào? Khi bạn tạo ra một class mà bạn chỉ muốn chỉ có duy nhất một thực thể là thể hiện của class đó và bạn có thể truy cập đến nó ở bất kỳ nơi đâu khi bạn muốn. Ví dụ như: Khi bạn tạo ra một class làm việc với file, config ,class lưu collection dùng chung, hoặc database. Bản chỉ cần duy nhất một thực thể của class đó và bạn sẽ sử dụng nó ở bất kỳ nơi đâu. Dùng nó như thế nào? Đầu tiên tôi tạo ra một class với tên là Database. Để không class nào có thể khỏi tạo nó (đảm bảo duy nhất có một thực thể) tôi sẽ private contructor của class trên. public class Database{ private Database(); } Và tạo một thuộc tính có tên là INSTANCE có kiểu Database và một phương trả về thuộc tính đó. Để các class khác có thể sử dụng

So sánh hiệu năng khi sử dụng vòng lặp For, ForEach, Iterator và ListIterator trong Java Collection

Trong bài trước tôi đã giới thiệu  Sự khác nhau giữa Iterator và ListIterator trong Java . Tại bài viết này tôi sẽ so sánh hiệu năng khi sử dụng vòng lặp For, ForEach, Iterator và ListIterator trong Java Collection. Code: Kết quả Về nhất là ListIterator, tiếp đến là Iterator. Vòng For đã cho chúng ta thấy sự chậm chạp của mình, còn For Each thì... hít bụi. Với ListIterator và Iterator khá ngang ngửa, thử tăng số lần gấp 10 giá trị cũ xem sao. Kết quả: Dung vong lap ITERATOR mat: 469 ms Dung vong lap LIST ITERATOR mat: 453 ms Lần này Iterator lại tốn ít thời gian hơn!!! Khá khó lý giải :))) Như vậy khi duyệt giữa các phần tử trong Java Collection ta nên dùng Iterator hoặc ListIterator để đạt hiệu năng cao nhất.

[Tut 1 - Design Pattern] Giới Thiệu Về Design Pattern

Hình ảnh
Design Pattern  là một kỹ thuật trong lập trình hướng đối tượng, nó khá quan trọng và mọi lập trình viên muốn giỏi đều phải biết. Được sử dụng thường xuyên trong các ngôn ngữ  OOP . Nó sẽ cung cấp cho bạn các “mẫu thiết kế”, giải pháp để giải quyết các vấn đề chung, thường gặp trong lập trình. Các vấn đề mà bạn gặp phải có thể bạn sẽ tự nghĩ ra cách giải quyết nhưng có thể nó chưa phải là tối ưu. Design Pattern giúp bạn giải quyết vấn đề một cách tối ưu nhất, cung cấp cho bạn các giải pháp trong lập trình OOP. Tổng quan Design Pattern Design Pattern  có 23 mẫu cơ bản ( GoF ) và hình dưới là mối quang hệ giữa chúng 23 mẫu cơ bản ( GoF ) và mối quang hệ giữa chúng Trong Design Pattern có 3 nhóm bao gồm: Creational Pattern  (nhóm khởi tạo) gồm: Abstract Factory, Factory Method, Singleton, Builder, Prototype. Nó sẽ giúp bạn trong việt khởi tạo đối tượng, như bạn biết để khởi tạo bạn phải sử dụng từ khóa new, nhóm Creational Pattern sẽ sử dụng một số thủ thuật để khởi tạo đối tư