18/10/2018, 23:32

Composite Pattern in Ruby

Trong quá trình làm việc chúng ta thường phải đối mặt với bài toán được là phải xây dựng một hệ thống gồm các objects liên kết, tương tác với nhau theo dạng tree hierarchy. Vậy chúng ta cần áp dụng nguyên lý hay cách thiết kế nào để giải quyết vấn đề trên một cách hiệu quả, hãy cùng tham khảo bài ...

Trong quá trình làm việc chúng ta thường phải đối mặt với bài toán được là phải xây dựng một hệ thống gồm các objects liên kết, tương tác với nhau theo dạng tree hierarchy. Vậy chúng ta cần áp dụng nguyên lý hay cách thiết kế nào để giải quyết vấn đề trên một cách hiệu quả, hãy cùng tham khảo bài viết dưới đây nhé.

Quả thực đối với vấn đề thường gặp thì cứ áp dụng những thứ ông cha đã dạy mà làm, các bạn cứ yên tâm vì đây là kinh nghiệm đúc kết truyền đời mà. Giải pháp mà mình muốn đề cập ở bài viết này đó là áp dụng nguyên lý Composite Pattern.

Với cách kiểu thiết kế này ta chia làm 3 loại classes chính: component, leaf, composite. Component là những base class chúng nhằm mục đích định nghĩa các interface tổng quát cho tất cả các components khác. Leaf là những thành phần độc lập không thể phân chia ra được những component nhỏ hơn nữa. Composite là những loại compoments còn lại nghĩa là xếp ở vị trí higher-level, hiểu một cách đơn giản là nó đóng 2 vai trò: vừa là component và cũng là tập hợp của các component.

Để minh họa cho bài toán trên mình xin giới thiệu về quy trình làm bánh và requirement là "chúng ta mất bao lâu để nướng xong 1 chiếc bánh             </div>
            
            <div class=

0