Áp dụng MVC cho ứng dụng ActionScript 3.0

Model-View-Controller (MVC) là một kiến trúc được sử dụng trong công nghệ phần mềm.  MVC chia nhỏ một ứng dụng thành ba thành phần để cài đặt, mỗi thành phần đóng một vai trò khác nhau và ảnh hưởng lẫn nhau  là Model, View và Controller.
Model: Chứa dữ liệu và các logic hoặc business rule để thao tác với dữ liệu. Thông thường Model gắn liền với các giao tiếp với CSDL.
View tương ứng với giao diện người sử dụng như Form, các Button … Trong kiến trúc MVC, View chỉ có vai trò hiển thị lên giao diện, còn việc điều khiển dòng nhập xuất là vai trò của Controller.
Controller được xem như một trung gian giữa Model và View. Controller điều khiển dữ liệu giao tiếp giữa Model và View, xử lý các input/output của người dùng tại View, hoặc các thao tác với Model.

Trong bài viết này, tôi cố gắng xây dựng một ứng dụng AS3 đơn giản nhất nhưng đầy đủ nhất trong phạm vi có thể. Ứng dụng này minh họa quá trình tải nội dung 1 file XML rồi hiển thị lên màn hình.

Với một ứng dụng AS3 (ActionScript 3.0) áp dụng MVC thì vai trò của Model, View, Controller thường được phân công như sau:

Model: Xử lý việc lưu trữ và truy xuất dữ liệu (connect với web service chẳng hạn …)
View:  Xử lý việc hiển thị  đối trượng trên Stage
Controller: Xử lý các logic của đối tượng .

Mỗi Model có thể liên lạc với nhiều View, trong khi mỗi View cần có ít nhất một Controller. Model thường được xem như Base của ứng dụng.

Tôi dùng Flash Develop và Flex SDK 3.0 để viết code và build ứng dụng này. Bạn cũng có thể build với Flash CS3, Flash CS4 nếu map file Main.as với file FLA cần được build. Với ứng dụng này, tôi cũng chi source code ra làm 3 package là View, Model, Controller để tương ứng với concept về MVC. Bạn không nhất thiết phải chia ra 3 package như tôi làm nhưng việc chia ra sẽ làm cho source code của ứng dụng dễ hiểu hơn và minh bạch hơn.

Bạn có thể download toàn bộ source code tại đây

One thought on “Áp dụng MVC cho ứng dụng ActionScript 3.0

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s