Some topics on designing C++ class
来源:互联网 发布:linux ctrl alt 编辑:程序博客网 时间:2024/05/21 14:02
Considering some topics when designing classes:
(1) hiding code implement details. We don't need any details from public member of this class.
(2) the public interface/member should give user more information. So, the name of public interface/member should be fine.
(3)the most important is that present a consistent level of ADTs in the class. For example: we have a simple class CEmployee which deals with the infromation of employee. So, the public interface/member GetName(), GetAddress(), IsMarried() maybe fine, but the IsZipAddressValid(Address address) break the consistent of this class. The ADT of this CEmployee is employee and the interface to deal with employee. When we add or modify public interface/member, be careful and don't change the class consistent.
(4)care about the inheritance. Inheritance is only for "Is a "relationships. For example: Class CColumn : public std::vector<int> is not probable. CColumn can contain a std::vector<int> member.
(5) move unrelative information to another class. The unrelative information maybe another ADT which different from this class.
(6)work with real world entities rather than with low-level implementation. We work with CEmployeeList rather than the details of std::vector<int>.
(7)class may has high cohesion and have less relationships with other class.
The ways to design good class. Good classes have good encapsulation.
(1) Minimize accessibility of classes and members.
(2)avoid frient class.
(3)wirte member as protect/private attribute.
(4)don't make any private implementation detalis in public interface/member
etc.
- Some topics on designing C++ class
- Some topics in C++
- some research topics
- Topics on Discrete Mathematics
- 游戏服务器 - Some Concept in Designing Architecture
- Several Topics On C++ fstream
- Hot Topics on Computer Vision
- 【checkStyle】ignore some class
- Some commands on AIX
- Some thinking on process
- Some arrangement on DOM
- Some tips on ubuntu
- Some thoughts on love
- Some advice on tests
- Some <!-- 注释-> on <%'注释 %>
- What is better? some advices about designing a goode API
- Topics
- On-Designing-and-Deploying-Internet-Scale-Services
- HGE 系列教材(7) --- 使用 Helper Classes
- JDK1.5新特性介绍
- Switch
- HGE 系列教材(8) --- hgeResourceManager helper class(本文未完成)
- 【摘录】用来装载Moduel到正在运行的Kernel和移除Moduel的用户空间工具
- Some topics on designing C++ class
- 在Oracle中进行大小写不敏感的查询
- HGE 系列教材(9) --- GUI(本文未完成)
- FIRST_ROWS优化模式语言排序模糊匹配问题
- 测试sql数据库连接代码
- 不同服务器的session访问
- 使用Java实现在SQLserver中实现图片的存储
- oracle中用户连接相关
- 陈一舟:绝对不卖校内网[转]