Strategy pattern là gì

1. Strategy Pattern là gì?

Tần suất sử dụng: 4/5, Strategy pattern được sử dụng khá nhiều trong lập trình.

Bạn đang xem: Strategy pattern là gì

*
*
Mỗi dạng design Pattern sẽ trình làng một Pattern tiêu biểu và Behavioral thiết kế Pattern đang được bàn luận với pattern sau cuối là Strategy pattern, chủng loại này áp dụng khi thao tác với những hành vi của đối tượng, nó “đánh dấu” cách áp dụng chạy. Factory pattern gồm thể biến hóa dạng đối tượng người dùng thì Strategy có thể biến đổi thuật toán (hành vi) của đối tượng. Strategy rất hữu dụng trong một trong những trường hợp chỗ mà các class là tương tự nhau tuy nhiên không tương quan và khác nhau về hành vi. Ví dụ, chúng ta cần lọc những chuỗi, những bộ lọc khác nhau hoàn toàn có thể sử dụng:

Loại bỏ những thẻ HTMLLoại bỏ những từ ngữ ko phù hợp.Loại bỏ những ký tự thực hiện để nhờ cất hộ thư rác rưởi thông qua hình thức liên lạcThông thường bọn họ sẽ làm 3 phương án và áp dụng chúng nó vào các chuỗi buộc phải lọc. Các bộ lọc có thể được áp dụng một biện pháp khác nhau. Đầu tiên, khái niệm interface với các tính năng yêu cầu thiết


Code language: PHP (php)Xác định dạng cỗ lọc tiếp đến implement các phiên bạn dạng thích vừa lòng của phương thức trong interface:


class HtmlFilter implements Filter function filter($str) // vứt bỏ mã HTML return $str; class SwearFilter implements Filter function filter($str) // đào thải các từ ngữ không phù hợp. Return $str;
class="prettyprint prettyprinted">span class="kwd">classspan> span class="typ">FormDataspan> span class FormData private $_data = NULL; function __construct($input) $this->_data = $input; function process(Filter $type) $this->_data = $type->filter($this->_data);
Code language: JavaScript (javascript)Phương thức process() nhận một đối tượng người tiêu dùng dạng Filter và trải qua đó dữ liệu được lọc.


$form = new FormData($someUserInput);if (!$allowHTML) $form->process(new HtmlFilter());if (!allowSwear) $form->process(new SwearFilter());
Code language: PHP (php)

2. Ví dụ vận dụng Strategy Pattern trong PHP

OK, kim chỉ nan là như vậy, họ cùng áp dụng vào thực tế, lấy ví dụ như về một ứng dụng thống trị sinh viên. Tạo ra file strategy.php trong ooppattern với nội dung:


Danh sách gốc

"; $list->display(); // thu xếp theo thương hiệu $list->sort(new MultiAlphaSort("first_name")); echo "

Danh sách sắp xếp theo tên

"; $list->display(); // bố trí theo điểm $list->sort(new MultiNumberSort("grade", "descending")); echo "

Danh sách thu xếp theo điểm

Code language: HTML, XML (xml)Trong lấy ví dụ như này bọn họ thấy rằng thuộc là hành vi sort() tuy vậy nó khác nhau ở những thời điểm không giống nhau, địa điểm thì thu xếp tên, chỗ thì bố trí điểm. Bởi vậy việc vận dụng Strategy Pattern giúp chúng ta chuyển đổi được hành động của một đối tượng người sử dụng trong thời hạn chạy. Công dụng khi thực hiện trong trình để ý như sau:

*
*

Cảm ơn các bạn đã đọc.

Xem thêm: Top 10 Địa Chỉ Mua Dụng Cụ Đan Len Mua Ở Đâu, Dụng Cụ Đan Móc

Các bạn có thể tham khảo các bài viết hay về Laraveltại đây.

Hãy gia nhập nhómHọc lập trìnhđể thảo luận thêm về những vấn đề thuộc quan tâm.

Nguồn tham khảo: Allaravel


Share this:


« Previous
Next »

Leave a Reply Cancel reply

Your e-mail address will not be published. Required fields are marked *