纯虚函数与抽象类如何运用详解

定义成抽象类接口后优点:
1.代码具有非常好的扩展性,如果再加个hexagon类也很好处理,实现BaseGraphics定义的各个接口就好了
2.有助于多人协同开发,开发接口的不同关心如何实现接口,实现接口不用想太多,按要求一个个实现就好。
3.好的维护性,比如要修改Circle类里实现,只要改Circle部份,不用动到 其它代码。

避免public接口出现数据成员

首先,从“一致性”的角度来看这个问题。如果public接口里都是函数,用户每次访问类的成员时就用不着抓脑袋去想:是该用括号还是不该用括号呢?——用括号就是了!因为每个成员都是函数。一生中,这可以避免你多少次抓脑袋啊!

争取使类的接口完整并且最小

哪些函数该放在类的接口里呢?有时这个问题会使你发疯,因为有两个截然不同的目标要你去完成。一方面,设计出来的类要易于理解,易于使用,易于实现。这意味着函数的数量要尽可能地少,每一个函数都完成各自不同的任务。另一方面,类的功能要强大,要方便使用,这意味着要不时增加函数以提供对各种通用功能的支持。你会怎样决定哪些函数该放进类里,哪些不放呢?