Delphi 8引入了类助手,用于将VCL/RTL映射到.NET对象层次结构.它们允许将方法注入到现有类中,而不会覆盖类或修改原始类.后来的Delphi版本发现了类帮助程序的改进,并将它们移植到Win32.
在帮助中,它说:"在开发新代码时,不应将它们视为一种设计工具."
班级助手违反了传统的OOP,但我认为这不会使他们成为一件坏事.这个警告是否合理?
在开发新代码时是否应该使用类助手?
在开发新代码时是否使用它们?
为什么或者为什么不?
Per Malcolm的评论:新代码意味着每日应用程序开发,你有一些第三方库,一些现有代码,然后是你正在编写的代码.
取决于"新代码"的含义.
它们与您新开发的类并不相关,所以在这种情况下,不,它们可能不应该被使用.
但即使在一个全新的项目中,您仍可能需要修改一个您无法以其他方式更改的现有类(vcl类,第三方类等).在这种情况下,当然,我会说继续.
他们本身并不邪恶.像大多数其他事情一样,您只需要了解它们如何工作并在适当的环境中使用它们.
在将课程助手作为花哨代码的新工具之前,我认为您必须了解其中包含的限制.只能为一个类提供一个类助手.那么如果你为你的类提供类助手会发生什么,你的类派生出一个普通的类,其他一些类提供了一个类助手呢?
CodeGear引入了类助手作为"黑客"来防止破坏事物,而不是一个很酷的设计功能.在设计代码时,请在没有类助手的情况下进行设计.我知道你可以.处理您可以控制的现有代码时,请使用重构.如果没有其他办法,请到达班级助手.
多数民众赞成我的意见......
基于Microsoft的LINQ严重围绕其扩展方法.有鉴于此,如果改进了代码,你应该在新代码中使用Class Helpers.看看班主任的好用途是什么?一些好的用途.