gpt4 book ai didi

language-agnostic - 流畅的界面是否违反了德米特定律?

转载 作者:行者123 更新时间:2023-12-03 05:47:30 25 4
gpt4 key购买 nike

wikipedia article关于Law of Demeter说:

The law can be stated simply as "use only one dot".

但是simple examplefluent interface可能看起来像这样:

static void Main(string[] args)
{
new ZRLabs.Yael.Pipeline("cat.jpg")
.Rotate(90)
.Watermark("Monkey")
.RoundCorners(100, Color.Bisque)
.Save("test.png");
}

那么这可以在一起吗?

最佳答案

嗯,法律的简短定义让它变得太短了。真正的“法则”(实际上是关于良好 API 设计的建议)基本上是这样说的:只能访问您自己创建的对象,或者作为参数传递给您的对象。不要通过其他对象间接访问对象。流畅接口(interface)的方法通常返回对象本身,因此如果您再次使用该对象,它们不会违反法律。其他方法为您创建对象,因此也不存在违规。

另请注意,“法律”只是“经典”API 的最佳实践建议。流畅的接口(interface)是一种完全不同的 API 设计方法,不能用德米特定律来评估。

关于language-agnostic - 流畅的界面是否违反了德米特定律?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67561/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com