主要观点:
- 展示了过度工程化的代码示例及如何改进,以检测文件格式的代码为例。
关键信息: - 过度工程化的代码示例如[xbinary.h]、[xbmp.h]、[xbmp.cpp],用于从文件内容检测文件格式及提取文件属性。
- 过度工程化的表现包括使用面向对象设计,创建基类和继承类,存在不必要的虚函数等。
- 可通过将信息存储为类成员、移除获取器方法、合并函数等方式进行改进,如将多个虚函数替换为单个非虚函数,合并多个函数为一个等。
- 还讨论了无需使用类,可将每个格式检测器实现为单个函数,以及将多个文件类型的检测函数简化为一个函数等。
重要细节: - 在小型方面,如文件类型和模式通常与数据无关,可避免虚函数调用以节省代码大小和速度。
- 在大型设计方面,可将多个获取信息的函数合并为一个,虽损失了某些使用方式,但简化了 API 和代码。
- 过度工程化的原因是追求简单困难,受所学知识影响容易过度使用类继承和虚函数,跳出固有思维模式较难。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。