10.3.7 ADT/UDT版式
ADT/UDT(例如类)的版式主要有两种形式。
(1)将private限定的成员写在前面,而将public限定的成员写在后面。采用这种版式的程序员一般是主张“以数据为中心”设计ADT/UDT,重点关注其内部结构;
(2)将public限定的成员写在前面,而将private限定的成员写在后面。采用这种版式的程序员一般是主张“以行为为中心”设计ADT/UDT,重点关注其提供的接口(或服务)。
见示例10-8。
估计很多C++教科书受到Bjarne Stroustrup第一本著作(《The C++ Programming Language》)的影响,不知不觉地采用了“以数据为中心”的方式来编写类,这样做并不见得有多少道理。
【建议10-8】:
建议采用“以行为为中心”的方式来编写类,即首先考虑类应该提供什么样的接口(即函数)。这是很多人的经验——“这样做不仅让自己在设计类时思路清晰,而且方便别人阅读。因为用户最关心的是接口,谁愿意先看到一堆私有数据成员!”
示例10-8
|
以数据为中心的版式 |
以行为为中心的版式 |
|
class A { private: int i; float x; … |
class A { public: void Func1(void); void Func2(void); … |
|
public: void Func1(void); void Func2(void); … } |
private: int i; float x; … } |
| 回书目 上一节 |