Cỏc thành phần tham gia vào cấu trỳc mẫu Interpreter:
AbstractExpresion: lớp trừu tƣợng, khai bỏo cỏc tỏc vụ cú thể thực hiện đƣợc trờn tất cả cỏc nỳt trong cõy cỳ phỏp.
TerminalExpression: Cài đặt tỏc vụ thụng dịch cho những ký phỏp nguyờn tố của ngụn ngữ đặc tả.
NonterminalExpression: Cú thể chứa cỏc TerminalExpression bờn trong và cũng cú thể chứa một NonterminalExpression khỏc. Nú đúng vai trũ nhƣ là ngữ phỏp của ngụn ngữ đặc tả.
Context: Là đối tƣợng chứa thụng tin để thực hiện thụng dịch. Đối tƣợng này là toàn cục đối với toàn quỏ trỡnh thụng dịch.
1.3.6.4. Cỏc tỡnh huống ỏp dụng
Sử dụng mẫu Interpreter khi gặp vấn đề cần giải quyết lặp lại tƣơng đối nhiều và ta cú thể biểu diễn vấn đề bằng một ngụn ngữ đặc tả tƣơng đối đơn giản (ngụn ngữ đặc tả này do ta tự thiết kế và xõy dựng hoặc là những quy tắc đó cú sẵn).
1.3.6.5. Thuận lợi và hạn chế
cấu trỳc ngữ phỏp để đặc tả cỏc tỏc vụ mà nú sẽ thực hiện thành cỏc lệnh. Sau đú tạo cỏc thành phần thụng dịch để cú thể phõn tớch và thực thi cỏc lệnh này.
Hạn chế của mẫu này là ngụn ngữ đặc tả đƣợc xõy dựng đũi hỏi phải cú cấu trỳc ngữ phỏp đơn giản.
1.3.7. Mẫu Interator (mẫu lặp) 1.3.7.1. í nghĩa 1.3.7.1. í nghĩa
Mẫu Iterator cung cấp mẫu thiết kế cỏc đối tƣợng hỗ trợ duyệt cho một đối tƣợng đúng vai trũ thựng chứa (danh sỏch, ngăn xếp, hàng đợi, …). Một đối tƣợng hỗ trợ duyệt (Iterator Object) là đối tƣợng cho phộp tuần tự duyệt qua tất cả cỏc phần tử, cỏc thành phần đƣợc chứa trong một đối tƣợng khỏc, đặc biệt là những đối tƣợng đúng vai trũ thựng chứa.
Mục đớch chớnh của đối tƣợng hỗ trợ duyệt là cho phộp ngƣời dựng xử lý từng thành phần đƣợc chứa bờn trong đối tƣợng thựng chứa nhƣng che dấu hoàn toàn cấu trỳc nội tại của đối tƣợng của thựng chứa.
Thụng qua mẫu Iterator, cỏc hỡnh thức duyệt, giao diện lập trỡnh cung cấp cho lập trỡnh viờn để duyệt qua cỏc đối tƣợng của thựng chứa là khụng đổi, dẫu cho đối tƣợng của thựng chứa cú kiểu khỏc nhau.
1.3.7.2. Cấu trỳc mẫu