我正在重构一个大类,它在整个地方都有很多检查使用null对象模式.到目前为止,这是一个几乎顺利的变化,但我对最终结果有几个问题,我想知道是否有更好或不同的方法,甚至回到它的方式.
IMyObject myObject = GetMyObject(); if(myObject != null && !myObject.BooleanProperty) DoSomething();
所以你可以看到我可以从这个条件中删除null检查,但我有一个布尔属性,如果设置为默认值将执行一段代码.如果我总是回归真实,我可能会引入一些微妙的错误,这些错误很难找到并消除.
if(myObject.GetType() != typeof(MyNullObject)) return false; DoSomething();
这只是简单的丑陋,因为不是只检查null,现在我必须检查类型.这种情况在类中发生了三次,因为我没有返回对象的一个属性或执行其中一个方法我必须进行此检查.
最后,该对象有几个不可为空的DateTime属性,架构师不希望它们可以为空.再次将MinDate值作为默认值,一些讨厌的错误可能会爬进代码中.
所以你有它.这是一个空对象模式比分散在各地的意大利面条空检查更糟糕的情况吗?有没有更好的方法来实现这一目标?
谢谢你的回答.
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。