在一些个人项目中,我正在慢慢地从 PHP5 迁移到 Python,我目前很喜欢这种体验。在选择走 Python 路线之前,我查看了 Ruby。我从 ruby 社区注意到的是,猴子修补既常见又备受推崇。我还遇到了很多关于调试 ruby 软件试验的恐怖故事,因为有人包含一个相对无害的库来做一些小工作,但它在不告诉任何人的情况下修补了一些大量使用的核心对象。
我选择 Python 的原因之一是它更简洁的语法以及它可以完成 Ruby 可以做的所有事情。Python 使 OO 的点击率比 PHP 更好,我正在阅读越来越多的 OO 原则以增强对这种更好的理解。
今天晚上我一直在阅读关于罗伯特马丁的 SOLID原则:
- 单一责任原则,
- 开闭原则,
- L iskov替换原理,
- 接口隔离原则,以及
- 依赖倒置原则
我目前达到O:软件实体(类、模块、功能等)应该对扩展开放,但对修改关闭。
我的头脑在确保 OO 设计的一致性和整个猴子补丁之间的冲突。我知道可以在 Python 中进行猴子修补。我也明白,“pythonic”就是遵循常见的、经过充分测试的、oop 最佳实践和原则。
我想知道的是社区对这两个对立主题的看法;它们如何互操作,何时最好使用一个,是否应该进行猴子修补......希望你能为我提供解决方案。