NEW
Font size
WorksheetsKTTKPM_Chương 3-4
Total questions: 54
Worksheet time: 27mins
Thiết kế kiến trúc phần mềm là quá trình nào?
Viết mã nguồn cho các thành phần của phần mềm theo phương pháp hướng đối tượng
Xác định cấu trúc cơ bản và các thành phần của hệ thống phần mềm.
Thiết kế giao diện người dùng.
Quản lý cơ sở dữ liệu.
Yếu tố nào sau đây là quan trọng nhất trong giai đoạn thiết kế kiến trúc phần mềm?
Chọn ngôn ngữ lập trình.
Xác định các mẫu thiết kế (design patterns) phù hợp.
Thiết kế giao diện người dùng chi tiết.
Viết tài liệu hướng dẫn cài đặt.
Khi thiết kế kiến trúc phần mềm, yếu tố nào cần được xem xét đầu tiên?
Ngôn ngữ lập trình.
Yêu cầu của khách hàng.
Cơ sở dữ liệu.
Giao diện người dùng.
Bước đầu tiên và quan trọng nhất trong tiến trình thiết kế kiến trúc phần mềm là gì?
Xác định các phần tử thiết kế phần mềm.
Đánh giá thiết kế kiến trúc.
Hiểu được vấn đề cần giải quyết.
Biến đổi thiết kế kiến trúc.
Bước nào trong tiến trình thiết kế kiến trúc liên quan đến việc áp dụng các thao tác thiết kế để tạo ra một thiết kế mới tốt hơn?
Hiểu được vấn đề cần giải quyết.
Xác định các phần tử thiết kế và quan hệ của chúng.
Đánh giá thiết kế kiến trúc.
Biến đổi thiết kế kiến trúc.
Bước nào trong tiến trình thiết kế kiến trúc sử dụng kỹ thuật thiết kế trừu tượng?
Hiểu được vấn đề cần giải quyết.
Xác định các phần tử thiết kế và quan hệ của chúng.
Đánh giá thiết kế kiến trúc.
Biến đổi thiết kế kiến trúc.
Kiến trúc của một hệ phần mềm thường được biểu diễn như thế nào?
Một tập các mã nguồn.
Một tập các tài liệu hướng dẫn sử dụng.
Một tập các module hoặc hệ thống con.
Một tập các cơ sở dữ liệu.
Một ứng dụng quản lý kho hàng được thiết kế với một module duy nhất xử lý cả việc nhập kho, xuất kho và thống kê. Khi số lượng giao dịch tăng lên, việc bảo trì và mở rộng trở nên khó khăn. Nguyên lý nào đã bị vi phạm?
Nguyên lý đơn nhiệm
Nguyên lý hiểu biết tối thiểu
Nguyên lý phân rã các chức năng
Nguyên lý không tự lặp lại các chức năng.
Một hệ thống thương mại điện tử được thiết kế với nhiều chức năng không được sử dụng ngay từ đầu. Sau một thời gian, các chức năng này gây khó khăn cho việc bảo trì và mở rộng. Nguyên lý nào cần được áp dụng?
Nguyên lý hiểu biết tối thiểu
Nguyên lý đơn nhiệm
Nguyên lý phân rã các chức năng
Nguyên lý cực tiểu hóa thiết kế
Một hệ thống thanh toán trực tuyến được thiết kế để dễ dàng thay đổi phương thức thanh toán mà không ảnh hưởng đến logic xử lý giao dịch. Điều này thể hiện việc áp dụng nguyên lý nào?
Nguyên lý đơn nhiệm
Nguyên lý hiểu biết tối thiểu
Nguyên lý phân rã các chức năng
Tách biệt các quan tâm
Một ứng dụng có nhiều module khác nhau, nhưng mỗi module chỉ tương tác với các module cần thiết thông qua các giao diện được định nghĩa rõ ràng. Điều này thể hiện việc áp dụng nguyên lý nào?
Nguyên lý đơn nhiệm
Nguyên lý hiểu biết tối thiểu
Nguyên lý phân rã các chức năng
Nguyên lý cực tiểu hóa thiết kế
Một ứng dụng được thiết kế sao cho mã nguồn của chức năng xử lý thanh toán chỉ được viết một lần và sử dụng lại ở nhiều nơi khác nhau. Điều này thể hiện việc áp dụng nguyên lý nào?
Nguyên lý đơn nhiệm
Nguyên lý hiểu biết tối thiểu
Nguyên lý phân rã các chức năng
Nguyên lý không tự lặp lại
Khi xây dựng một hệ thống phần mềm quản lý thư viện, ở bước 1 "Hiểu được vấn đề cần giải quyết" của tiến trình thiết kế kiến trúc, công việc cụ thể nào sau đây cần được thực hiện?
Xác định các lớp (classes) và đối tượng (objects) chính của hệ thống, chẳng hạn như "Sách", "Độc giả", "Phiếu mượn".
Lựa chọn mô hình cơ sở dữ liệu (ví dụ: quan hệ, NoSQL) để lưu trữ thông tin về sách, độc giả và phiếu mượn.
Thu thập và phân tích các yêu cầu của người dùng và các bên liên quan, bao gồm các chức năng như "Tìm kiếm sách", "Mượn sách", "Trả sách" và các yêu cầu về hiệu suất, bảo mật.
Phác thảo giao diện người dùng (UI) ban đầu của hệ thống, bao gồm các màn hình cho phép người dùng tìm kiếm, mượn và trả sách.
Khi thiết kế kiến trúc cho một hệ thống quản lý nội dung (CMS), ở bước 2 "Xác định các phần tử của thiết kế và quan hệ của chúng", công việc nào sau đây cần được thực hiện?
Đánh giá các hệ quản trị cơ sở dữ liệu khác nhau (MySQL, PostgreSQL, MongoDB).
Xác định các thành phần chính như "Quản lý bài viết", "Quản lý người dùng", "Quản lý giao diện" và cách chúng tương tác với cơ sở dữ liệu.
Lựa chọn framework phát triển web (ví dụ: React, Angular, Vue.js).
Xác định thiết kế giao diện soạn thảo văn bản như "Quản lý bài viết", "Quản lý người dùng", "Quản lý giao diện" và Lựa chọn framework phát triển.
Khi nào thiết kế kiến trúc phần mềm được sử dụng như một nguồn tư liệu tham khảo?
Trong quá trình kiểm tra và phân tích tính chính xác của sản phẩm.
Trong giai đoạn lập trình và xây dựng phần mềm.
Khi phát triển các dự án phần mềm có cấu trúc tương tự.
Khi đưa ra các quyết định quan trọng về công nghệ.
Thiết kế kiến trúc phần mềm giúp giảm thiểu rủi ro như thế nào trong quá trình phát triển phần mềm?
Bằng cách cung cấp một ngôn ngữ chung cho các thành viên trong nhóm.
Bằng cách xác định rõ các thành phần và mối quan hệ giữa chúng từ sớm.
Bằng cách cho phép tái sử dụng các thành phần phần mềm
Bằng cách tối ưu hóa hiệu suất của phần mềm
Vai trò nào của thiết kế kiến trúc phần mềm giúp đảm bảo rằng phần mềm đáp ứng các yêu cầu được đặt ra sau khi hoàn thành?
Là cơ sở để kiểm tra, phân tích.
Cung cấp cái nhìn tổng quan về hệ thống.
Đảm bảo chất lượng và hiệu suất.
Hỗ trợ quá trình ra quyết định.
Một nhóm phát triển phần mềm đang xây dựng một ứng dụng phức tạp. Họ bỏ qua giai đoạn thiết kế kiến trúc và bắt đầu viết mã ngay lập tức. Hậu quả nào có khả năng xảy ra nhất?
Ứng dụng sẽ được hoàn thành nhanh hơn.
Ứng dụng sẽ có hiệu suất cao hơn.
Ứng dụng sẽ khó bảo trì và mở rộng trong tương lai.
Ứng dụng sẽ tự động đáp ứng mọi yêu cầu của người dùng
Một nhóm phát triển phần mềm đang xây dựng một ứng dụng di động. Họ muốn đảm bảo rằng ứng dụng có thể hoạt động tốt trên nhiều loại thiết bị khác nhau. Yếu tố nào trong thiết kế kiến trúc phần mềm sẽ giúp họ đạt được mục tiêu này?
Ngôn ngữ lập trình.
Cơ sở dữ liệu thiết kế.
Nguyên tắc thiết kế.
Giá thành sản phẩm.
Một công ty phần mềm đang xây dựng một hệ thống phần mềm cho bệnh viện. Họ cần đảm bảo rằng hệ thống phải hoạt động ổn định và chính xác vì nó liên quan đến tính mạng con người. Điều này nhấn mạnh tầm quan trọng của yếu tố nào trong thiết kế kiến trúc phần mềm?
Tính bảo mật
Độ tin cậy
Giao diện người dùng
Khả năng mở rộng
Một nhóm phát triển phần mềm đang xây dựng một ứng dụng cho phép người dùng tùy chỉnh giao diện. Họ cần phải xác định rõ ràng cấu trúc của giao diện và cách các thành phần tương tác với nhau. Giai đoạn nào trong phát triển phần mềm sẽ tập trung giải quyết vấn đề này?
Giai đoạn kiểm thử.
Giai đoạn thiết kế kiến trúc.
Giai đoạn bảo trì.
Giai đoạn phân tích yêu cầu.
Bước đầu tiên trong phương pháp ADD là:
Establish iteration goal by selecting drivers
Review Inputs
Choose one or more elements of the system to refine
Choose one or more design concepts that satisfy the selected drivers
Bước nào trong ADD liên quan đến việc xác định các thành phần chính và mối quan hệ của chúng?
Bước 2: Establish iteration goal by selecting drivers
Bước 3: Choose one or more elements of the system to refine
Bước 4: Choose one or more design concepts that satisfy the selected drivers
Bước 5: Instantiate architectural elements, allocate responsibilities, and define interfaces.
ADD có thể kết hợp với phương pháp thiết kế nào?
Thiết kế hướng đối tượng
RUP
Thiết kế hướng đối tượng, RUP.
Không kết hợp được với phương pháp nào
Trong phương pháp ADD, "trình điều khiển kiến trúc" là gì?
Một công cụ để quản lý dự án
Một tập hợp các kịch bản kiểm thử
Sự kết hợp giữa các yêu cầu về chức năng và chất lượng "định hình" kiến trúc
Một loại cơ sở dữ liệu kết hợp với các công cụ quản lý dự án, kịch bản kiểm thử.
ADD giúp giảm chi phí bảo trì và phát triển trong dài hạn bằng cách nào?
Tạo ra các hệ thống có kiến trúc linh hoạt, dễ bảo trì và mở rộng quy mô
Sử dụng các công nghệ mới nhất giúp giảm chi phí bảo trì và phát triển trong dài hạn.
Tự động hóa quá trình kiểm thử.
Tối ưu hóa hiệu suất của hệ thống.
Bạn đang thiết kế một hệ thống điều khiển giao thông thông minh. Bước nào trong ADD sẽ giúp bạn chọn các chiến thuật kiến trúc phù hợp để đảm bảo hệ thống có thể xử lý dữ liệu thời gian thực và đáp ứng nhanh chóng?
Bước 2: Establish iteration goal by selecting drivers
Bước 4: Choose one or more design concepts that satisfy the selected drivers
Bước 6: Sketch views and record design decisions
Bước 7: Perform analysis of current design and review iteration goal and achievement of design purpose
Bạn đang thiết kế một hệ thống quản lý bệnh viện. Bước nào trong ADD sẽ giúp bạn xác định giao diện của các mô-đun con, chẳng hạn như mô-đun quản lý hồ sơ bệnh nhân và mô-đun quản lý lịch hẹn?
Bước 5: Instantiate architectural elements, allocate responsibilities, and define interfaces
Bước 6: Sketch views and record design decisions
Bước 7: Perform analysis of current design and review iteration goal and achievement of design purpose
Bước 2: Establish iteration goal by selecting drivers
Tình huống: Một nhóm phát triển đang thiết kế một hệ thống điều khiển cho nhà máy sản xuất, nơi tính an toàn và thời gian phản ứng là cực kỳ quan trọng. Câu hỏi: Kết quả chính của việc áp dụng ADD trong tình huống này là gì?
Hệ thống có giao diện người dùng trực quan và dễ sử dụng, có khả năng mở rộng để hỗ trợ thêm các dây chuyền sản xuất trong tương lai.
Hệ thống có khả năng mở rộng để hỗ trợ thêm các dây chuyền sản xuất trong tương lai.
Hệ thống đáp ứng các yêu cầu nghiêm ngặt về thời gian thực và độ tin cậy, giảm thiểu nguy cơ xảy ra tai nạn.
Hệ thống có chi phí phát triển thấp và thời gian đưa ra thị trường nhanh chóng
Tình huống: Nhóm phát triển hệ thống quản lý bệnh viện muốn tích hợp thêm module đặt lịch khám online. Câu hỏi: Kết quả trực tiếp của việc áp dụng ADD để tích hợp module này là gì?
Giao diện đặt lịch khám được thiết kế đẹp mắt và thu hút người dùng.
Quy trình đặt lịch khám được tối ưu hóa, giảm thiểu số bước cần thực hiện.
Hệ thống được phân tách thành các module rõ ràng (module quản lý bệnh nhân, module đặt lịch, module thanh toán,...), giúp dễ dàng bảo trì và phát triển thêm các chức năng khác.
Hệ thống có khả năng xử lý số lượng lớn yêu cầu đặt lịch cùng lúc.
Tình huống: Khi thiết kế một hệ thống quản lý nội dung (CMS), ADD được sử dụng để xử lý các yêu cầu chất lượng. Câu hỏi: Kết quả cụ thể của việc đáp ứng yêu cầu "Thời gian tải trang không quá 2 giây" là gì?
Giao diện người dùng của CMS trở nên đẹp hơn.
Trải nghiệm người dùng được cải thiện, tăng sự hài lòng và giữ chân người dùng.
Hệ thống có khả năng tích hợp với nhiều công cụ SEO.
Hệ thống hỗ trợ nhiều định dạng nội dung hơn.
Tình huống: Khi thiết kế kiến trúc cho hệ thống quản lý kho hàng, ADD được sử dụng để xử lý các hoạt động đồng thời. Câu hỏi: Kết quả của việc mô hình hóa các hoạt động nhập xuất hàng hóa đồng thời là gì?
Hệ thống có giao diện quản lý kho trực quan.
Hệ thống có khả năng in mã vạch sản phẩm.
Hệ thống tránh được các xung đột dữ liệu và đảm bảo tính nhất quán của thông tin kho hàng khi có nhiều hoạt động diễn ra cùng lúc.
Hệ thống có khả năng dự báo nhu cầu hàng hóa, hệ thống có giao diện quản lý kho trực quan, hệ thống không có khả năng in mã vạch sản phẩm.
Trong phương pháp ADD, "mô-đun" được hiểu là gì?
Một đơn vị phần cứng có trách nhiệm cụ thể.
Một đơn vị phần mềm có trách nhiệm cụ thể
Một loại cơ sở dữ liệu có trách nhiệm cụ thể.
Một công cụ để quản lý dự án có trách nhiệm cụ thể.
Trong một ứng dụng quản lý cấu hình, bạn cần đảm bảo chỉ có một đối tượng cấu hình duy nhất. Mẫu thiết kế nào phù hợp?
Factory Method
Abstract Factory
Singleton
Builder
Bạn cần tạo ra các loại báo cáo khác nhau (PDF, Excel, Word) từ một giao diện chung. Mẫu thiết kế nào phù hợp?
Prototype
Factory Method
Singleton
Builder
Tại sao mẫu Singleton hữu ích trong việc quản lý kết nối cơ sở dữ liệu?
Nó cho phép tạo ra nhiều kết nối đồng thời.
Nó đảm bảo chỉ có một kết nối duy nhất, giúp tiết kiệm tài nguyên.
Nó giúp tạo ra các kết nối theo yêu cầu của người dùng.
Nó giúp quản lý các kết nối theo dạng cây phân cấp.
Mẫu Abstract Factory giúp giải quyết vấn đề gì khi tạo giao diện người dùng cho các nền tảng khác nhau?
Tạo ra các đối tượng giao diện có cùng giao diện nhưng khác nhau về cách triển khai.
Tạo ra một đối tượng giao diện duy nhất theo yêu cầu tùy ý của người dùng phần mềm.
Quản lý sự phụ thuộc một-nhiều giữa các đối tượng giao diện.
Tạo ra các đối tượng giao diện theo yêu cầu của người dùng.
Bài toán: Bạn đang xây dựng một hệ thống quản lý cấu hình ứng dụng và quyết định áp dụng mẫu thiết kế Singleton. Câu hỏi: Kết quả chính của việc áp dụng mẫu thiết kế này là gì?
Có rất nhiều các đối tượng cấu hình tồn tại trong suốt vòng đời ứng dụng, đảm bảo tính đa dạng, linh hoạt.
Chỉ có duy nhất một đối tượng cấu hình tồn tại trong suốt vòng đời ứng dụng,
Các thành phần khác nhau của ứng dụng có thể có các đối tượng cấu hình riêng biệt.
Việc thay đổi cấu hình sẽ tạo ra một đối tượng cấu hình mới và sẽ có rất nhiều cấu hình tồn tại trong suốt vòng đời của ứng dụng, đảm bảo tính nhất quán của ứng dụng
Bài toán: Bạn đang xây dựng một đối tượng phức tạp với nhiều tùy chọn cấu hình và áp dụng mẫu thiết kế Builder. Câu hỏi: Kết quả quan trọng của việc sử dụng Builder trong trường hợp này là gì?
Quá trình tạo đối tượng trở nên trực quan và bạn có thể tạo ra các biểu diễn khác nhau của đối tượng bằng cùng một quy trình xây dựng.
Việc tạo đối tượng được thực hiện ngay lập tức mà không có các bước trung gian.
Quá trình tạo đối tượng trở nên khách quan và bạn không thể tạo ra các biểu diễn khác nhau của đối tượng bằng cùng một quy trình xây dựng.
Quá trình tạo đối tượng trở nên trực quan và bạn có thể tạo ra các biểu diễn khác nhau của đối tượng bằng các quy trình xây dựng khác nhau.
Bài toán: Áp dụng Abstract Factory để tạo giao diện cho các hệ điều hành khác nhau sẽ mang lại kết quả gì?
Code tạo giao diện sẽ phụ thuộc trực tiếp vào các lớp giao diện cụ thể của từng hệ điều hành.
Bạn có thể dễ dàng chuyển đổi giao diện giữa các hệ điều hành bằng cách thay đổi factory được sử dụng.
Giao diện sẽ được xây dựng theo từng thành phần một cách độc lập.
Bạn có thể dễ dàng chuyển đổi giao diện giữa các hệ điều hành bằng cách thay đổi Abstract được sử dụng.
Trong một ứng dụng cần tích hợp một thư viện bên ngoài có giao diện khác với giao diện của ứng dụng, mẫu thiết kế nào phù hợp?
Bridge
Composite
Adapte
Decorator
Bạn cần thêm các tính năng bổ sung vào một đối tượng một cách động mà không cần phải tạo ra một lớp con mới, mẫu thiết kế nào phù hợp?
Bridge
Composite
Adapter
Decorator
Một ứng dụng cần trì hoãn việc tải một hình ảnh lớn cho đến khi người dùng thực sự muốn xem nó, mẫu thiết kế nào phù hợp?
Facade
Flyweight
Proxy
Adapter
Tại sao mẫu Decorator hữu ích khi thêm hiệu ứng vào ảnh trong ứng dụng chỉnh sửa ảnh?
Nó cho phép tạo ra các đối tượng có cấu trúc phức tạp.
Nó cho phép thêm các hiệu ứng một cách động mà không thay đổi lớp ảnh gốc.
Nó cho phép quản lý sự phụ thuộc một-nhiều giữa các đối tượng.
Nó cho phép tạo ra một đối tượng duy nhất.
Bài toán: Bạn đang xây dựng một ứng dụng có thể chạy trên nhiều hệ điều hành khác nhau và sử dụng mẫu thiết kế Bridge. Câu hỏi: Kết quả quan trọng của việc áp dụng mẫu thiết kế này là gì?
Ứng dụng sẽ có giao diện người dùng giống hệt nhau trên tất cả các nền tảng.
Phần logic nghiệp vụ của ứng dụng có thể thay đổi độc lập với phần triển khai cho từng hệ điều hành.
Phần logic nghiệp vụ của ứng dụng có thể thay đổi nhưng liên quan mật thiết với phần triển khai cho từng hệ điều hành.
Ứng dụng sẽ có hiệu suất tối ưu trên một nền tảng cụ thể.
Bài toán: Bạn muốn cung cấp một giao diện đơn giản cho người dùng tương tác với một hệ thống phức tạp gồm nhiều lớp. Bạn áp dụng mẫu thiết kế Facade. Câu hỏi: Kết quả chính của việc sử dụng Facade là gì?
Sự phức tạp của hệ thống bên trong được hiện lên, cung cấp một điểm truy cập dễ sử dụng hơn.
Sự phức tạp của hệ thống bên trong được ẩn đi, cung cấp một điểm truy cập dễ sử dụng hơn.
Sự phức tạp của hệ thống bên trong được nhân lên, cung cấp một điểm truy cập dễ sử dụng hơn.
Sự phức tạp của hệ thống bên trong được ẩn đi, cung cấp một điểm truy cập khó sử dụng hơn.
Bài toán: Sử dụng mẫu thiết kế Bridge để xây dựng một ứng dụng vẽ hình trên nhiều loại thiết bị hiển thị (màn hình, máy in) sẽ dẫn đến kết quả nào?
Logic vẽ hình và cách hiển thị trên từng thiết bị sẽ được trộn lẫn trong cùng một lớp.
Phần logic vẽ hình có thể phát triển độc lập với cách hiển thị trên từng loại thiết bị.
Phần logic vẽ hình không thể phát triển độc lập với cách hiển thị trên từng loại thiết bị.
Việc thêm một thiết bị hiển thị mới sẽ yêu cầu sửa đổi toàn bộ code và log vẽ hình
Trong một ứng dụng GUI, bạn cần xử lý các sự kiện khác nhau (nhấp chuột, gõ phím) bằng các đối tượng xử lý khác nhau. Mẫu thiết kế nào phù hợp?
Command
Interpreter
Chain of Responsibility
Iterator
Bạn cần xây dựng một bộ thông dịch cho một ngôn ngữ truy vấn cơ sở dữ liệu đơn giản. Mẫu thiết kế nào phù hợp?
Command
Interpreter
Chain of Responsibility
Iterator
Bạn cần cập nhật giao diện người dùng khi dữ liệu của ứng dụng thay đổi. Mẫu thiết kế nào phù hợp?
Mediator
Memento
Observer
State
Bài toán: Bạn đang xây dựng một hệ thống xử lý yêu cầu hỗ trợ nhiều loại yêu cầu khác nhau. Bạn áp dụng mẫu thiết kế Chain of Responsibility. Câu hỏi: Kết quả chính của việc áp dụng mẫu thiết kế này là gì?
Mỗi loại yêu cầu sẽ có bộ xử lý riêng và yêu cầu được chuyển qua một chuỗi đối tượng phù hợp.
Yêu cầu được chuyển qua một chuỗi đối tượng, đối tượng phù hợp sẽ xử lý.
Tất cả yêu cầu do một đối tượng xử lý.
Yêu cầu bị bỏ qua nếu không có đối tượng xử lý.
Bài toán: Bạn muốn cung cấp nhiều cách khác nhau để thực hiện một chức năng (ví dụ: tính toán thuế) trong ứng dụng của mình và cho phép chọn cách thực hiện tại thời điểm chạy. Bạn áp dụng mẫu thiết kế Strategy. Câu hỏi: Kết quả quan trọng của việc sử dụng Strategy trong trường hợp này là gì?
Thuật toán cố định khi biên dịch và có thể thay đổi khi chạy.
Thuật toán thay đổi khi chạy mà không sửa code client.
Thuật toán thực hiện phụ thuộc trạng thái đối tượng.
Thuật toán định nghĩa bằng ngôn ngữ riêng.
Bài toán: Bạn có một hệ thống phức tạp với nhiều đối tượng tương tác và bạn muốn giảm sự phụ thuộc trực tiếp giữa chúng bằng cách giới thiệu một đối tượng trung gian. Bạn áp dụng mẫu thiết kế Mediator. Câu hỏi: Kết quả chính của việc sử dụng Mediator là gì?
Tương tác riêng lẻ, giảm sự phụ thuộc lẫn nhau.
Tương tác tập trung, giảm phụ thuộc lẫn nhau
Mỗi đối tượng tự quản lý tương tác.
Đối tượng không thể tương tác, giảm phụ thuộc nhau.
Bài toán: Bạn đang xây dựng một bộ thông dịch cho một ngôn ngữ đơn giản và áp dụng mẫu thiết kế Interpreter. Câu hỏi: Kết quả chính của việc áp dụng mẫu thiết kế này là gì?
Biên dịch sang mã máy, định nghĩa ngữ pháp.
Định nghĩa ngữ pháp và diễn giải câu lệnh.
Kiểm tra và định nghĩa lỗi cú pháp.
Tối ưu hóa thực thi ngữ pháp và diễn giải câu lệnh.
