Siêu thị PDFTải ngay đi em, trời tối mất

Thư viện tri thức trực tuyến

Kho tài liệu với 50,000+ tài liệu học thuật

© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Kiến trúc tiến hóa và thiết kế nổi dần: Ngôn ngữ, tính biểu cảm và thiết kế, Phần 2 pot
MIỄN PHÍ
Số trang
30
Kích thước
212.9 KB
Định dạng
PDF
Lượt xem
839

Kiến trúc tiến hóa và thiết kế nổi dần: Ngôn ngữ, tính biểu cảm và thiết kế, Phần 2 pot

Nội dung xem thử

Mô tả chi tiết

Kiến trúc tiến hóa và thiết kế nổi dần: Ngôn ngữ, tính biểu cảm và thiết kế,

Phần 2

Tiếp tục khám phá tính biểu cảm trong mã lệnh của bạn tạo khả năng cho thiết kế

nổi dần như thế nào

Neal Ford, Kiến trúc phần mềm, ThoughtWorks

Tóm tắt: Khả năng xem và thu lượm các mẫu (pattern) diễn đạt đặc trưng là rất

quan trọng đối với thiết kế nổi dần. Và điều quan trọng sống còn đối với thiết kế là

tính biểu cảm của mã lệnh. Trong loạt bài viết gồm hai phần, Neal Ford sẽ bàn về

chỗ giao nhau giữa tính biểu cảm và mẫu diễn đạt đặc trưng, giải thích các khái

niệm này bằng cả mẫu diễn đạt đặc trưng lẫn mẫu thiết kế hình thức hóa. Ông viết

lại một số mẫu cổ điển của Gang of Four trong các ngôn ngữ động cho JVM để

cho bạn thấy rằng các ngôn ngữ biểu cảm hơn cho phép bạn thấy các phần tử thiết

kế bị che khuất bởi các ngôn ngữ mờ tối hơn như thế nào. (N.D: Gang of Four hay

GoF - Nhóm bốn người - là cuốn sách của bốn tác giả : Erich Gamma, Richard

Helm, Ralph Johnson và John Vlissides, được coi là nền tảng của các mẫu thiết kế

khác, được phân loại làm 3 nhóm: tạo lập (Creation), cấu trúc (Structure) và hành

vi (Behavior)).

Đây là phần thứ hai của loạt bài viết gồm hai phần bài minh họa về tính biểu cảm

của ngôn ngữ máy tính giúp cho thiết kế nổi lên bằng cách cho phép bạn tập trung

nhiều hơn vào bản chất hơn là vào nghi lễ như thế nào. Sự cách biệt lớn giữa ý

định và kết quả là đặc trưng của nhiều ngôn ngữ đã có từ hàng chục năm nay (bao

gồm cả ngôn ngữ Java™), khi nó thêm những nghi lễ không cần thiết cho việc giải

quyết vấn đề. Các ngôn ngữ biểu cảm hơn làm cho việc tìm các mẫu diễn đạt đặc

trưng trở nên dễ dàng hơn, vì mã chứa ít tạp nhiễu hơn. Tính biểu cảm này là dấu

hiệu của các ngôn ngữ hiện đại như Groovy và Scala; của ngôn ngữ cũ hơn nhưng

có tính biểu cảm hơn như ngôn ngữ Ruby, mà JRuby là một biến thể JVM của

ngôn ngữ đó; hoặc của những ngôn ngữ cũ hơn nhưng đã được tân trang lại

(reimagined) như là ngôn ngữ Clojure, là ngôn ngữ Lisp hiện đại trên JVM (xem

mục Tài nguyên). Trong bài viết này tôi tiếp tục phần giải thích mà tôi đã bắt đầu

trong Phần 1 — triển khai thực hiện các mẫu truyền thống của Gang of Four từ

cuốn Mẫu thiết kế bằng các ngôn ngữ có tính diễn cảm hơn.

Mẫu Decorator

Cuốn Gang of Four định nghĩa mẫu Decorator (cái trang trí) như sau:

Mẫu Decorator gắn thêm các trách nhiệm bổ sung cho đối tượng theo phương thức

động. Các mẫu Decorators cung cấp một lựa chọn linh hoạt để tạo lớp con nhằm

mở rộng chức năng.

Nếu bạn đã từng sử dụng các gói java.io.* thì bạn ý thức được một cách sâu sắc về

mẫu Decorator. Rõ ràng là các nhà thiết kế các thư viện I/O đã đọc phần Decorator

của cuốn Gang of Four và thực sự đã yêu thích nó! Đầu tiên, tôi sẽ cho bạn xem

việc thực hiện theo cách truyền thống cho một mẫu Decorator bằng ngôn ngữ

Groovy, sau đó làm cho nó trở nên động hơn trong các ví dụ tiếp theo.

Cái trang trí truyền thống

Liệt kê 1 cho thấy một lớp Logger cùng với hai cái trang trí dành cho nó (

TimeStampingLogger và UpperLogger), cả hai cái trang trí này được thực hiện

bằng ngôn ngữ Groovy:

Liệt kê 1. Lớp Logger và hai cái trang trí

class Logger {

def log(String message) {

println message

}

}

class TimeStampingLogger extends Logger {

private Logger logger

TimeStampingLogger(logger) {

this.logger = logger

}

def log(String message) {

def now = Calendar.instance

logger.log("$now.time: $message")

}

Tải ngay đi em, còn do dự, trời tối mất!
Kiến trúc tiến hóa và thiết kế nổi dần: Ngôn ngữ, tính biểu cảm và thiết kế, Phần 2 pot | Siêu Thị PDF