Tôi có một chút câu hỏi lý thuyết, tuy nhiên đó là vấn đề mà đôi khi tôi phải đối mặt khi thiết kế các lớp và tôi thấy nó được thực hiện khác khi đọc mã khác. Điều nào sau đây sẽ tốt hơn và tại sao:Thiết kế lớp: mảng vs nhiều biến
dụ 1:
class Color
{
public:
Color(float, float, float);
~Color();
friend bool operator==(Color& lhs, Color& rhs);
void multiply(Color);
// ...
float get_r();
float get_g();
float get_b();
private:
float color_values[3];
}
dụ 2:
class Color
{
public:
// as above
private:
float r;
float g;
float b;
}
Có một nguyên tắc chung ta nên làm theo trong những trường hợp như thế này hoặc là nó chỉ lên đến một lập trình viên và những gì dường như có ý nghĩa hơn?
BTW bạn có lý do thực tế nào về lý do giữ bí mật các trường ở đây không? – Kos
@Kos, đưa ra ví dụ, tôi có thể dễ dàng nhìn thấy bằng cách sử dụng accessors và mutators để hạn chế đầu vào, mặc dù mỗi trường có lẽ nên là 'byte' thay vì' float'. Ngoài ra, các giá trị chuỗi như '# ABCDEF' và' # ABC' có thể được sử dụng. – zzzzBov