您可以允许创建对象,而不指定所有
属性的值,然后如果在对象状态对于执行的
方法调用有效之前
调用该
方法将抛出InvalidOperationException,在这种情况下,这意味着所有8个
属性都将有效值.
这样你就可以给消费者更多的灵活性.它可以一次创建一个新的实例,将其设置为另一个,然后调用该方法.这是通过.NET代码库使用的“模式”,并且已经使用了哪些开发人员.
更新:
如果您正在添加不需要初始化的完整属性集的其他方法,这也简化了事情.是的,我们可以使用新的属性集添加另一个构造函数重载,但是如果我们有两个方法需要一个要初始化的相同类型的属性呢?这不能通过使用构造函数重载来解决.