条款33:将非尾端类(non-leaf classes)设计为抽象类(abstract classes)
这一原则是绝对合适的,然而我们在应用的时候往往违反这一原则。我在目前的设计中就违反了这一原则,但好在我的对象都是独立的,不存在相互之间的关联关系,那我需要注意的就是虚函数的实现,这个地方是个比较大的隐患。为什么要这么做?它可以提高代码的健壮度,可靠度,精巧度和可扩充度。
需要注意就是我之前写到的纯虚函数并不代表没有实现代码,而仅仅意味着类为抽象类。那么在类之间交互比较多、关系比较复杂的情况下,最好不要将非尾端类作为具象类。虽然看起来工作量比较大,但可以花点功夫将这两个类作为具象类,而抽象出两个类具体的抽象类。