Tôi đã xây dựng một ứng dụng web với GUI khá phức tạp - nhiều yếu tố nhỏ bên cạnh nhau và trong các yếu tố khác cần các hành vi khác nhau (kéo, nhấp, nhưng nhạy cảm theo ngữ cảnh).
Mã của tôi có xu hướng hoạt động như thế này:
điều khiển bắt đầu dưới dạng thẻ html
<li>
sau đó tôi thêm các lớp vào thẻ
<li class = 'static passive included'>
một số lớp có thể dành cho kiểu css ảnh hưởng đến ngoại hình
.static {background: blue; float: left;}
trong khi những người khác bị jQuery hành động để đưa ra hành vi cho các sự kiện DOM liên quan
$("#container").delegate(".passive", function {onclick : //do-stuff})
và những người khác có thể được chọn bởi javascript thông thường khi quét tài liệu, ví dụ. thu thập các giá trị văn bản của tất cả các nút với lớp 'bao gồm'. Vì vậy, các phần tử DOM nhất định là các đối tượng GUI triển khai các lớp được định nghĩa thông qua sự kết hợp của css và jQuery.
Câu hỏi của tôi là, đây có phải là một cách tốt để làm việc? Và đây cũng là những 'người trang trí' thực sự - họ chắc chắn 'thêm trách nhiệm bổ sung cho một đối tượng một cách linh hoạt' nhưng tôi không chắc về thuật ngữ đó. Cuối cùng, bạn có sử dụng mô hình này trong các trang web của riêng bạn?