目标C类别与开放/封闭原则

|| 遵循开放/封闭原则   。 。 。软件实体(类,模块,功能等)应打开以进行扩展,但应关闭以进行修改 因此,我可以说类别严重违反了这一原则吗?     
已邀请:
我不知道如何。类别使您可以添加取决于现有界面的功能。它们不允许您对原始类进行任何实际的更改,它们只是提供了一些语法糖,使您产生了将新方法添加到类中的幻觉。 换句话说,类别可帮助您扩展课程。他们不修改它。似乎它们加强了开放/封闭的原则。     
我认为“封闭式修改”的标准解释是“添加新功能不需要修改现有代码。”使用这种解释,类别不会违反开放式/封闭式原理,因为编写了新的类别方法不构成修改现有代码。 至于特殊的类别方法可以代替类中现有方法的特殊情况,它可能不会违反“开放/封闭原则”,但由于其危险性而被人们反对。这是“可以执行此操作但不支持”该语言功能之一。     

要回复问题请先登录注册