Đề tìm hiểu rõ hơn về khung làm việc xét ví dụ bài toán có mô hình nghiệp vụ: có một kiểu Kho hàng ( Stock) với một thuộc tính mức ( Level), chọn một gói của các thành phần giao diện người sử dụng, chúng ta tìm thấy kiểu công cụđo ( Meter) dùng cho việc hiển thị sốđểđọc ( reading ), phục vụ cho việc đánh giá tình trạng tồn kho.
Bây giờ chúng ta muốn xác định là Meter có thểđược sử dụng để hiển thị mức
độ của Stock , bằng cách sử dụng mẫu thiết kế quan sát ( Observer). Thông thường chúng ta chỉ chú ý đến các khía cạnh khác nhau của một mô hình trong các biểu đồ
khác nhau, chính vì vậy chúng ta không nói lại tất cả các thứ đã nói về hai đối tượng
đã được nói ở trên mà chúng ta chỉ cần định nghĩa các thuộc tính và các phương thức phụ thêm cần thiết để có thể liên kết được chúng.
Vấn đề đặt ra cần xác định Meter có thểđược dùng để hiển thị Level của Stock. Sau đây chúng ta sẽ sử dụng mẫu thiết kế quan sát ( Observer) làm minh hoạ, nó là một trong số các mẫu thiết kếđược dùng phổ biến nhất.
Phương tiện thể hiện cho khung làm việc chính là khuôn mẫu ( template), nó là một dạng của gói. Trong khuôn mẫu, một số kiểu và một sốđặc điểm có thểđược định nghĩa trước bằng các tên đã được đặt chỗ trước ( placeholder name), tức một số kiểu hay đặc tính đó đã được đặt tên và được định nghĩa một cách hình thức trong khuôn mẫu đó. Khi khuôn mẫu được áp dụng thì ta chỉ cần thay thế các chỗ đã được định nghĩa bằng các tên cụ thể của đối tượng được thay thế. Nhìn vào định nghĩa của nó trong thư viện, chúng ta tìm thấy trong khuôn mẫu mẫu quan sát có hai kiểu được đặt chỗ trước là Subject và Observer. Thay thế các tên này trong gói bởi Stock và Meter, các định nghĩa thay thế trở thành một phần của mô hình. Nói một cách khác, bất cứ
thuộc tính và phương thức nào được định nghĩa cho Subject của khuôn mẫu thì bây giờ
cũng được định nghĩa trong Stock. Các tên khác được thay thế cũng tương tự như vậy. Khuôn mẫu sử dụng một thuộc tính được gọi là giá trị ( value) cho Subject, giá trị mà ta muốn quan sát; chính vì vậy chúng ta thay thế nó cho Level của Stock.
Khung làm việc là một gói khuôn mẫu, các phần tử có thể được thay thế. Nó mở ra một phiên bản nội dung của khung làm việc dựa trên sự thay thếđược tiến hành,
nói cách khác khi khung làm việc được triển khai, thì trong đó sẽ có sự thay thế. Sau khi thay thế ta sẽ được một phiên bản khung làm việc mới có nội dung cụ thể nhưng lại dựa trên nội dung của khung làm việc ban đầu.
Khung làm việc có thể là sự trừu tượng hóa bản đặc tả của một kiểu thông thường, một họ các kiểu phụ thuộc lẫn nhau, một sự cộng tác, một khuôn mẫu làm mịn, mô hình tạo nên chính chúng, thậm chí là một nhóm các thuộc tính cơ bản thông thường (kết hợp, giao hoán,…).
Hình 11. Ví dụ về áp dụng một mô hình khung làm việc
Khung làm việc quan sát thể hiện một loạt các quyết định thiết kế về cách thức mà hai kiểu đối tượng sẽ cộng tác với nhau như thế nào để đạt được kết quả mong muốn mà không quan tâm đến bất kỳ một vai trò hay cộng tác cụ thể giữa các đối tượng này. Sự khái quát này phân rã công việc thiết kế cho bất kỳ một miền xác định nào. Đó chính là một trong rất nhiều những hiệu quả của việc sử dụng mô hình khung làm việc.
Một mẫu thiết kế là một tập các ý tưởng có thể được áp dụng cho nhiều tình huống trong phát triển phần mềm. Một khung làm việc là “trái tim” của các mẫu thiết kế. Khi lưu khung làm việc trong thư viện, ta nên đóng gói nó cùng với các tài liệu. Một khái niệm liên quan nữa, đó là các khuôn mẫu lớp được sử dụng trong một số
ngôn ngữ lập trình. Một khuôn mẫu lớp cũng là một khung mô hình nhưng nó chỉ chứa một lớp duy nhất.
Sự đa dạng của các kỹ thuật hướng đối tượng cho phép ta xây dựng các khung làm việc có thể thực thi được, bằng cách chia nhỏ nó thành các lớp, cắm thêm các thành phần mới, và bằng cách thể hiện các lớp qua các ngôn ngữ được xây dựng để
phục vụ cho các mục đích này.
Các công cụ hỗ trợ cho các khung làm việc và các khuôn mẫu cho phép mở mỗi
ứng dụng của mô hình khung làm việc để có thể nhìn thấy mô hình kết quả với đầy đủ
thực thi được với tất cả những thành phần thay thế đã được tạo ra, tức là tất cả các thành phần đã thay thế vào các điểm đặt chỗ trước của khung làm việc nguyên thủy ban đầu. Về mặt ý tưởng, các khung làm việc sẽ lưu các định nghĩa của khung làm
Observation Stock Meter Subject [value/level] Observer [view_value/reading]
việc, các định nghĩa ban đầu của các kiểu áp dụng, các biểu đồ trong khung làm việc
được sử dụng. Nếu như người dùng thay đổi bất cứ thành phần nào trong số chúng thì mô hình kết quảđã mở ra và được thay đổi từng bước.