C++ 编程/编程语言/范式/封装
外观
封装(也称为信息隐藏)是大型软件项目中常用的概念,用于实现可扩展性。封装背后的原理是将类的内部工作机制隐藏在使用该类的代码之外,只暴露必要的部分。
团队开发项目通常会将任务分成多个部分。设计简洁易懂的接口可以使代码更易于理解。如果团队 A 编写的类中的一个数据成员被团队 B 使用,而该类更改了数据成员的工作方式,则可能会破坏与团队 B 代码的兼容性。维护类的成员数据不仅非常困难,而且对于客户来说也可能非常混乱。封装类的接口就像与客户的协议,声明了它能够做什么。客户不应该关心它是如何完成的,事实上它可以在未来升级,只要它符合相同的接口。
要完全封装一个类,该类中的所有数据成员都必须是私有的。在设计类时,必须确定哪些数据必须是可访问的,哪些数据可以完全隐藏。要公开的数据将需要“访问器函数”,这些函数可以允许对私有数据成员进行读取或存储。
//Non-encapsulated class
class raceCar {
public:
void drive()
int pos;
int speed;
};
//Encapsulated class
class raceCar {
public:
void drive()
void setSpeed(int s) {m_speed = s;}
int speed() {return m_speed;}
int position() {return m_pos;}
private:
int m_pos;
int m_speed;
};