理解“告诉,不要问”原则
💡
原文英文,约700词,阅读约需3分钟。
📝
内容提要
“告诉,不要问”是面向对象编程(OOP)的核心原则,强调从对象请求动作而不是直接查询其状态。通过封装对象状态和减少耦合,这一原则提高了可维护性和可重用性。在游戏开发中,这一原则通过一个玩家类的例子得以体现,该类请求攻击而不查询武器的状态。遵循这一原则可以增强封装性,减少耦合,提高可维护性,简化代码,并有助于更好的软件设计。然而,重要的是要灵活应用这一原则,考虑代码的清晰性和可读性。
🎯
关键要点
- ‘告诉,不要问’是面向对象编程的核心原则,强调对象之间应请求动作而非直接查询状态。
- 遵循该原则可以提高对象的封装性,减少对象之间的耦合,从而提升可维护性和可重用性。
- 在游戏开发中,玩家类应请求攻击而不是查询武器的状态,以减少类之间的耦合。
- 错误的做法是玩家类检查武器的弹药状态,增加了耦合并破坏了封装性。
- 正确的做法是玩家类直接请求武器执行攻击,武器类内部管理自己的状态。
- 增强的封装性使得武器类不暴露其内部状态,外部对象只需请求动作。
- 减少耦合意味着玩家类不依赖于武器类的内部状态,便于维护和修改。
- 代码简化使得请求动作的代码更易读,避免复杂的状态检查。
- 马丁·福勒强调在应用该原则时要保持代码的清晰性和可读性,避免过于僵化的应用。
- 总结来说,‘告诉,不要问’原则有助于简化对象间的交互,提高代码的可维护性和设计质量。
➡️