gpt4 book ai didi

language-agnostic - 函数中的抽象层次

转载 作者:行者123 更新时间:2023-12-05 01:42:48 26 4
gpt4 key购买 nike

我正在读一本名为“干净的代码”的书,当作者试图讲述我们如何编写一个高效的函数时卡住了。他说,“为了确保我们的函数做”一件事, “我们需要确保我们函数中的语句都处于同一抽象级别”。那么作者究竟想通过抽象层次表达什么?

最佳答案

您可以将函数视为某种能力或行为的计算实现。

例如,如果您正在为一盏可以打开或关闭的灯建模,您可以在两个函数中获取这些功能,switchON()switchOFF() .或者您可能更愿意使用带有形式参数 b 的单个函数 switch(b) 等来实现相同的功能。在思考这些问题时,您对 lamp 大大简化了,因为您只对真实灯的某些方面感兴趣:状态(开/关)、颜色等。根据灯与其他对象相关的角色,您将包含一些特征并忽略许多其他特征(例如,价格、重量等)。

定义模型的范围,即您将密切关注的特征,构成了您对灯的抽象。您可以将抽象视为漫画,是真实事物(或概念)的一个版本,与原作共享尽可能少的属性以使其相似,而不是尽可能多地完全复制它。

那么,什么是级别的抽象?它是一组属性和行为,代表模型拥有的特定特征:与实现某个目标相关的特征。

例如,如果您的目标是为交通灯建模,您的只需要能够打开和关闭,并且颜色在绿色、红色和黄色之间。 p>

现在假设您要为动态交通系统建模以优化城市中的车辆流量。您的抽象必须包括街道、十字路口、大道等。在构建模型时,您将在不同级别之间切换:灯、交通灯、绿波、高峰时间、假期、周末。

作者试图传达的想法是,对于 circumvent(accident) 这样的 Controller 函数来说,包含一行代码来处理 的实现是不好的switch(b),因为这样一行代码属于不同的详细级别,即属于不同的抽象层,适合灯的实现。同样,circumvent(accident)的主体在存储信息的数据库的某些SELECT子句中引用也是不好的,因为这样的代码行仅适用于数据存储库级别(对事故知之甚少)。

因此,在设计程序或应用程序时,要特别注意识别其不同层次。然后,在编写函数时,确保其代码仅属于您的一个抽象。

关于language-agnostic - 函数中的抽象层次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50594400/

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