保护代码不受其他程序员的更改

本文关键字:程序员 其他 代码 保护 | 更新日期: 2023-09-27 18:22:05

在C#中,我有一个类正在使用一个函数来做一些工作。问题是:这个函数需要类具有特定的结构才能返回正确的结果(对于"特定结构",你可以想象这个类使用函数所依赖的一组特定的枚举)。

我的问题是:在将来对using类的结构进行更改时,尝试并安全保护我的函数的最佳方法是什么?或者至少要有它,这样如果另一个程序员更改了类的结构,我的函数就会通知他,为了使一切正常工作,需要对函数本身进行更改。

我希望一切都清楚。提前感谢!

保护代码不受其他程序员的更改

+1用于单元测试,如@joews建议的

如果你不能/不想使用它们,一个非常粗略的方法来处理:在Main的第一行中,调用方法CheckMyClass()

void CheckMyClass()
{
#if DEBUG
    bool theClassIsOK = ...//check your class is still how it should be.
    if (! theClassIsOK)
        throw new ApplicationException ("something changed TheClass in a wrong way, DiG knows what's wrong with this");
#endif
}

我知道,一点也不优雅。

用对你的同事(或前同事,因为他们会在你找到新工作的第二天修改课程…)更有用的东西代替"DiG knows"

确保函数获得所需依赖项的最佳方法是将它们作为参数显式传递。因此,不需要类的实例作为参数,而是需要每个枚举或其他类成员。

您还可以考虑让类实现一个具有所有必需属性的接口。如果你把接口和你的函数一起分布在一个程序集中,人们将无法更改它

最后,您可以将断言放入函数中,如果断言不正确,则返回异常。