20/4/15

Những nguyên tắc cơ bản khi thiết kế class

Khi xây dựng một class chúng ta cũng cần có những nguyên tắc để class hoàn chỉnh hơn, đảm bảo các tính chất của lập trình hướng đối tượng.

Khi nào thì xây dựng class để biểu diễn đối tượng? Khi chúng ta nghĩ đến vấn đề như một khái niệm riêng lẻ thì lúc này nên xây dựng lớp để biểu diễn khái niệm đó. Lớp là biểu diễn của một khái niệm nào đó, nên tên lớp luôn là danh từ.

Các thuộc tính của lớp là các thành phần dữ liệu mô tả lớp nên chúng cũng là danh từ. Các hàm thành phần đặc trưng cho các hành vi của lớp, vì thế tên hàm là động từ.

Ví dụ:
class Point
{
private:
   float x, y;
public:
   void SetX(int);
   void SetY(int);

   ///...

};

Đa số các trường hợp nên đặt phạm vi của các biến thành viên là private để đảm bảo tính đóng gói.

Các thuộc tính có thể suy diễn từ những thuộc tính khác thì nên dùng hàm thành phần để thực hiện tính toán. Tuy nhiên, nếu các thuộc tính suy diễn dòi hỏi nhiều tài nguyên hoặc thời gian để thực hiện tính toán, ta có thể khai báo là dữ liệu thành phần.

Nếu các dữ liệu thành phần có thể được trừu tượng hóa thành lớp khác thì nên định nghĩa lớp đó để kết hợp chúng lại.

Ví dụ: Với lớp TamGiac nên dùng 3 biến thuộc lớp Diem để biểu diễn 3 điểm A, B, C thay vì dùng 6 biến biểu diễn xA, yA, xB, yB, xC, yC.

Trong mọi trường hợp, nên có phương thức thiết lập để khởi động đối tượng.  Nên có phương thức thiết lập có khả năng tự khởi động mà không cần tham số. Nếu đối tượng có nhu cầu cấp phát tài nguyên thì phải có phương thức thiết lập, copy constructor để khởi động đối tượng bằng đối tượng cùng kiểu và có destructor để dọn dẹp. Ngoài ra còn phải định nghĩa lại phép gán (tương tự như copy constructor). Nếu đối tượng đơn giản không cần tài nguyên riêng thì không cần copy constructor và destructor.

Có thể xem thêm bài viết này: Khi nào cần định nghĩa constructor, copy constructor và destructor?

Không có nhận xét nào:

Đăng nhận xét