Câu hỏi phỏng vấn Design pattern
Câu hỏi

Design pattern nào trong thư viện JDK của Java?

Câu trả lời

Trong thư viện JDK của Java, có nhiều mẫu thiết kế (Design Patterns) được áp dụng. Dưới đây là một số ví dụ điển hình:

Creational Patterns

  • Abstract Factory: Được sử dụng để tạo ra một gia đình các đối tượng liên quan hoặc phụ thuộc mà không cần chỉ định lớp cụ thể của chúng. Ví dụ: javax.xml.parsers.DocumentBuilderFactory#newInstance(), javax.xml.transform.TransformerFactory#newInstance(), javax.xml.xpath.XPathFactory#newInstance().
  • Builder: Tách rời quá trình xây dựng một đối tượng phức tạp khỏi biểu diễn của nó, cho phép cùng một quá trình xây dựng tạo ra các biểu diễn khác nhau. Ví dụ: java.lang.StringBuilder#append(), java.nio.ByteBuffer#put() (cũng áp dụng cho các loại Buffer khác như CharBuffer, ShortBuffer, v.v.).
  • Factory Method: Định nghĩa một interface cho việc tạo đối tượng, nhưng để cho các lớp con quyết định lớp nào sẽ được khởi tạo. Ví dụ: java.util.Calendar#getInstance(), java.util.ResourceBundle#getBundle(), java.text.NumberFormat#getInstance().
  • Singleton: Đảm bảo rằng một lớp chỉ có một thể hiện duy nhất và cung cấp một điểm truy cập toàn cục đến thể hiện đó. Ví dụ: java.lang.Runtime.

Structural Patterns

  • Adapter: Cho phép các interface không tương thích làm việc cùng nhau. Ví dụ: java.util.Arrays#asList(), java.io.InputStreamReader(InputStream), java.io.OutputStreamWriter(OutputStream).
  • Bridge: Tách rời một trừu tượng khỏi việc triển khai của nó để chúng có thể thay đổi độc lập. Ví dụ: AWT (Abstract Window Too...
middle

middle

Gợi ý câu hỏi phỏng vấn

middle

Mô hình MVC là gì?

senior

Lợi thế của dùng prototype so với dùng toán tử new là gì?

middle

Điều gì sẽ xảy ra nếu chúng ta không có một phương thức synchronized để trả về thực thể Singleton trong môi trường đa luồng?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào