Behavior parameterization được hiểu là dựa vào hành vi ngừoi dùng để tạo ra tham số cho các hàm.
Nếu bạn nào đã từng tìm hiểu qua Behavior Driver Development phát triển phần mềm dựa trên nền tảng hành vi ngừoi dùng.
Trong quá trình làm phần mềm, các yêu cầu thiết kế thay đổi liên tục để tạo ra sản phẩm mà ngừoi dùng hài lòng nhất.
Behavior parameterization là một cách viết code như vậy, và trong Java 8 có hỗ trợ chúng ta viết code theo cách này rất hay. Thông qua bài này mình giới thiệu cách mình hiều về nó.
Ví dụ
Nếu bạn có một bộ sưu tập [Collection] là một rổ táo
Lúc đầu yêu cầu thiết kế chỉ là lấy ra những quả táo có màu xanh
Tiếp theo yêu cầu thay đổi là lấy những quá táo có mày xanh và nặng hơn 150 gram.
và yêu cầu tiếp tục thay đổi mở rộng theo thời gian và theo nhu cầu từ ngừoi dùng.
Bằng cách để ý tới hành vi có khả năng phát sinh trong tương lai chúng ta đã tạo ra một hàm có tính cơ động hơn rất nhiều.
Tiếp theo là yêu cầu bổ sung thêm trọng lượng lớn hơn 150 gram. Lúc này chúng ta áp dụng lại cách đã làm ở bước số 2, chúng ta mở rộng thành hỗ trợ lọc tất cả các thuộc tính của 1 quả táo mà không chỉ là thêm cân nặng.
3. Support filter by all attributes
Step 1: Đầu tiên định nghĩa đối tượng Quả táo:
Step 2: Tiếp theo là tạo một phương thức kiểm tra/dự đoán thuộc tính của 1 qua táo Predicate
Step3: Tạo Stategy để lọc theo thuộc tính màu sắc color:
Step 4: Tạo Stategy để lọc theo thuộc tính cân nặng weight: