Some topics on designing C++ class

 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.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值