在库的公共接口设计中,如果我想要延迟初始化,返回Lazy<T>
的实例是否合法?或者最好是通过封装或其他技术来隐藏Lazy<T>
的使用?
答案 0 :(得分:1)
对于以下情况,我认为你的意思是懒惰财产。
这取决于您的界面的目的。
消费者是否知道它是懒惰的,这是一个重要的细节吗?或者它只是一个技术细节,不应该改变消费者的行为。
你只有一个短暂的延迟,消费者不得处理,然后我倾向于喜欢Lazy并且只是直接暴露T。
如果消费者应该意识到并且可能适应这种行为,那么我会揭露懒惰。
但是在这种情况下,我会在大多数情况下暴露出一种方法,表明代码可能有副作用或可能需要一段时间。
答案 1 :(得分:0)