The Daily WTF 中文 关注 代码 SOD:静态状态 C++ 代码审查揭示了一种令人担忧的模式,涉及 getter 和 setter 方法。原本应该是一个简单的 getter 方法 getField 却意外地调用了 setGetField 函数。这个 setGetField 函数使用一个布尔标志来决定是设置还是获取值。更糟糕的是,这个值被存储在 setGetField 中的一个静态变量中。静态变量意味着该值在类的所有实例之间共享,实际上创建了一个单例。审查员最初的反应是不相信,怀疑这是一个恶作剧。然而,反复遇到这种模式导致了沮丧,并引发了关于开发人员的能力和招聘实践的质疑。这种有缺陷模式的重复使用凸显了对代码库质量和开发人员对基本编程原则理解的严重担忧。问题的核心在于不正确的封装以及在类方法中使用静态变量带来的意外后果。该代码的设计导致所有实例共享状态,违反了核心的面向对象编程 (OOP) 原则。 CodeSOD: Static State thedailywtf.com The Daily WTF 中文 RSS thenote.app
getField却意外地调用了setGetField函数。这个setGetField函数使用一个布尔标志来决定是设置还是获取值。更糟糕的是,这个值被存储在setGetField中的一个静态变量中。静态变量意味着该值在类的所有实例之间共享,实际上创建了一个单例。审查员最初的反应是不相信,怀疑这是一个恶作剧。然而,反复遇到这种模式导致了沮丧,并引发了关于开发人员的能力和招聘实践的质疑。这种有缺陷模式的重复使用凸显了对代码库质量和开发人员对基本编程原则理解的严重担忧。问题的核心在于不正确的封装以及在类方法中使用静态变量带来的意外后果。该代码的设计导致所有实例共享状态,违反了核心的面向对象编程 (OOP) 原则。