gpt4 book ai didi

abstraction - 信息隐藏与隐藏的依赖关系

转载 作者:行者123 更新时间:2023-12-04 20:25:37 28 4
gpt4 key购买 nike

在过程(或功能、模块等)设计中,有哪些常见的最佳实践来平衡对信息隐藏的需求和过程接口(interface)中适当的抽象级别与引入隐藏依赖项所固有的问题?

更具体地说,假设我编写了一个名为 getEmployeePhoneNbr(employeeId) 的过程。在内部,该过程是通过查询以employeeId 为键的数据库表来实现的。我想隐藏那些实现细节,但现在这个过程依赖于一个外部文件,如果环境发生变化,这会阻碍它的使用。

任何时候过程使用外部资源(文件、数据库等)时都会发生相同的情况。在过程中硬编码该资源的使用感觉是错误的,但我不确定替代方案是什么。

请注意,我不是在使用面向对象的语言。 在可能的范围内,我最感兴趣的是广泛适用于任何类型语言的响应。

谢谢,
马特

最佳答案

您遇到的这类问题通常可以使用 来解决。依赖倒置原理 (又名 DIP)。原文可见here .

这篇文章主要是面向对象的,但你也可以使用命令式语言(你可以用命令式语言做面向对象,只是更难)。

原则是,最好给客户端对象提供对执行某些必要处理(例如数据库访问)的对象的引用,而不是将此对象编码或聚合到客户端对象中。

在功能级别,您可以将其翻译为高级功能低级数据/功能。

非 OO 语言中最好的方法是传递一个结构或函数指针,该指针定义了更高级别函数使用的数据/函数。

关于abstraction - 信息隐藏与隐藏的依赖关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1256788/

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