Võ Văn Hải's blog

Chỉ có một điều tuyệt đối đó là mọi thứ đều tương đối…

Design Patterns

A design pattern is a documented best practice or core of a solution that has been applied successfully in multiple environments to solve a problem that recurs in a specific set of situations.
Architect Christopher Alexander describes a pattern as “a recurring solution to a common problem in a given context and system of forces.”

  • The term context refers to the set of conditions/situations in which a given pattern is applicable.
  • The term  system of forces refers to the set of constraints that occur in the specific context.

Design patterns are not theoretical constructs. A design pattern can be seen as an encapsulation of a reusable solution that has been applied successfully to solve a common design problem.
Though design patterns refer to the best known ways of solving problems, not all best practices in problem resolution are considered as patterns. A best practice must satisfy the Rule of Three to be treated as a design pattern.
Design patterns do not provide solutions to every problem found in real-world software design and development. Design patterns are about providing elegant, reusable solutions to commonly encountered software development problems in a particular context.


Môn học Design Patterns

Study guide: download

Slides: Tất cả các slide dựa trên 2 cuốn sách “HeadFirst DesignPatterns” và  Software “Architecture Design Patterns in Java”

    1. Software Architecture intro, Design Patterns intro and UML intro;

    2. Basic Patterns;

    3. Creational Patterns; update; source code demo

    4. Collectional Patterns; source code demo

    5. Structural Patterns; source code demo; slide update

    6. Behavioral Patterns; source code demo

Examples:

Exercises:

Lab reports:

1. Lab report 1: Đọc hiểu ví dụ “Online Shopping UML Examples” sau đó viết lại bằng Việt ngữ, vẽ lại 1 số mô hình trong ví dụ này.

Hạn chót nộp bài: 11/06/2012.

2. Lab report 2: Consider a Web hosting company that offers hosting services on both Windows and UNIX platforms. Suppose that the Web hosting company offers three different types of hosting packages — Basic, Premium and Premium Plus — on both platforms. Design an GUI application using the Abstract Factory pattern to query the features of different types of hosting packages offered by the Web hosting company.

Hạn chót nộp bài: 03/07/2012

Assignments:

  • Requirements: download
  • Dead-line: vào buổi học cuối.

Các vấn đề liên quan:

Code của DoFactory.Design Pattern Framework 3.5 CS các bạn download về tham khảo

3 Responses to “Design Patterns”

  1. Nam said

    Em thấy Design Patterns rất hữu ích trong việc lập trình, tiếc là nó khó nuốt wa’, và nuốt là 1 chuyện còn áp dụng được nó không lại là 1 chuyện. Hy vọng sớm đọc được các bài viết về Design Patterns của thầy (nếu được, thầy post luôn các vd & code mẫu).
    Chúc thầy 1 năm mới được nhiều sức khỏe và có được nhiều học trò tâm đắc với việc lập trình!

  2. Anh Tuấn said

    Em chào thầy! Chúng em có nhiều bạn chưa biết gì về Java hết, cho nên mong thầy giúp em gửi những code Java thầy đề mô trên lớp để chúng em học thêm!
    Cảm ơn thầy!

  3. Chiến Trần Văn said

    em chào thầy
    hiện e đang làm bài tập lớn về mẫu Decorator muốn xin 1 chút tài liệu về mẫu này
    em tìm trên mạng mà thấy ít tài liệu quá
    mà giảng viên yêu cầu báo cáo từ 30 đến 50 trang
    thầy có thể cho e xin tài liệu về mẫu này đươc ko ạh?
    e cảm ơn
    mail của e: chienkaka93@gmail.com

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

 
%d bloggers like this: