摘要:
有些人并不想生孩子:本意是要独立使用的类所遵守的设计蓝图与基类不同。将独立类用作基类是一种严重的设计错误,应该避免。要添加行为,应该添加非成员函数而不是成员函数。要添加状态,应该使用组合而不是继承。要避免从具体的基类中继承。
在添加新功能时应该通过新的非成员函数来添加,为了避免名字查找问题,一定要将这些函数与要扩展的类型放在同一个名字空间中。有些人不喜欢非成员函数,因为它的调用语法是Fun(str)而不是str.Fun(),但这只是一种语法习惯和熟悉与否的问题而已。
摘要:
有些人并不想生孩子:本意是要独立使用的类所遵守的设计蓝图与基类不同。将独立类用作基类是一种严重的设计错误,应该避免。要添加行为,应该添加非成员函数而不是成员函数。要添加状态,应该使用组合而不是继承。要避免从具体的基类中继承。
在添加新功能时应该通过新的非成员函数来添加,为了避免名字查找问题,一定要将这些函数与要扩展的类型放在同一个名字空间中。有些人不喜欢非成员函数,因为它的调用语法是Fun(str)而不是str.Fun(),但这只是一种语法习惯和熟悉与否的问题而已。