UML Class Diagram
#UML
2
C#
16
Java
68
#Object Oriented
2
Male avatar

vankhangfet viết ngày 08/10/2015

UML Class Diagram

Nếu như muốn biểu diễn mối quan hệ giữa các class như : Aggregation, Composition, Inheritance thì mình nghĩ UML Class Diagram thể hiện tốt nhất trong trường hợp này.
Nếu bạn nào chưa từng nghe qua hay sử dụng UML để đặc tả hệ thống thì có thể tham khảo link sau:

UML [https://en.wikipedia.org/wiki/Unified_Modeling_Language]

Chắc hẳn các bạn đã nhìn thấy những biểu tượng sau trong tài liệu thiết kế.

alt text

Tuy nhiên mình nhận thấy là có rất nhiều bạn còn hiểu sai hoặc cảm thấy khó nhớ khi nào dùng biểu tượng quan hệ như thế nào. OK! Bài viết này hy vọng sẽ giúp bạn thấy việc vẽ một Class Diagram sẽ dễ dàng như thê nào. Cách dễ hiểu nhất đó là ánh xạ các mối quan hệ biểu diễn ở trên vào chính những đoạn code mà các bạn hay thường gặp trong lập trình hướng đối tượng (có thể là Java, C#,C++,..)

Chúng ta hãy bắt đầu xem xét từng ví dụ sau: (Ở đây mình ví dụ có sử dụng 2 Class A và B)

Dependency:

Khi một class có sử dụng một instance của class B như một tham số đầu vào của method trong class A.
Ex:

public class A {

    public void doSomething(B b) {}

Nhưng giả sử class A có một member với kiểu dữ liệu là class B thì lúc đó ta có mối quan hệ

Aggregation:

Ex:

public class A {

    private B _b;

    public void setB(B b) { _b = b; }

Với ví dụ trên ta có thể thấy mối quan hệ giữa A và B chỉ là Aggreation có nghĩa là nếu như A bị hủy thì chưa chắc B đã được hủy. Do vậy nếu như instance của B được khởi tạo trong A như ví dụ dưới đây ta có mối quan hệ là

Composition:

Ex:

public class A {

    private B _b = new B();

Hoặc

public class A {

    private B _b;

    public A() {
        _b = new B();
    } // default constructor

Còn mối quan hệ như Inheritance hay Realization thì sao? Đúng như tên gọi của nó, nếu class B kế thừa từ class A ta có mối quan hệ

Inheritance:

Ex:

public class A {

    ...

} // class A

public class B extends A {

    ....

} // class B

Mặt khác nếu class B implement từ A thì ta có mối quan hệ (Ví dụ ta hay thấy đó là implement một interface)

Realization:

Ex:

public interface A {

    ...

} // interface A

public class B implements A {

    ...

} // class B

Các code ví dụ trên rất dễ hiểu và gần gũi. Hy vọng các bạn sẽ dễ dàng hơn khi vẽ một class diagram.

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

Male avatar

vankhangfet

2 bài viết.
16 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
Male avatar
5 2
Sử dụng OpenCV function với C.Net Nếu bạn đã từng làm một số project có liên quan đến xử lý ảnh thì chắc hẳn sẽ biết thư viện OpenCV. Hiện tại đã ...
vankhangfet viết hơn 2 năm trước
5 2
Bài viết liên quan
White
6 1
Bản quyền thuộc Fsoft Potato Tech Mag Những bài viết được giới thiệu ở blog https://giaosucan.blogspot.com Mang danh thợ code lòng sao xứng Tên...
Giaosucan viết hơn 1 năm trước
6 1
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


Male avatar
{{userFollowed ? 'Following' : 'Follow'}}
2 bài viết.
16 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!