过程(或函数,模块等)设计中有哪些常见的最佳实践,用于平衡信息隐藏的需求和过程接口中的适当抽象级别以及引入隐藏依赖项所固有的问题? 更具体地说,假设我编写了一个名为getEmp
更具体地说,假设我编写了一个名为getEmployeePhoneNbr(employeeId)的过程.在内部,通过查询从employeeId键入的数据库表来实现该过程.我想隐藏这些实现细节,但现在该过程依赖于外部文件,如果环境发生变化则会阻碍其使用.
只要程序使用外部资源(文件,数据库等),就会发生同样的情况.以某种方式在程序中硬编码该资源的使用感觉是错误的,但我不确定替代方案是什么.
请注意,我不是使用面向对象的语言;在可能的范围内,我最感兴趣的是那些广泛适用于任何类型语言的答案.
谢谢,
马特
这篇文章主要是OO,但你也可以使用命令式语言(你可以用命令式语言做OO,这更难).
原则是,最好为客户端对象提供对执行某些所需处理(例如数据库访问)的对象的引用,而不是将此对象编码或聚合到客户端对象中.
在功能级别,您可以将其翻译为高级功能低级数据/功能.
非OO语言的最佳方法是传递结构或函数指针,该指针定义更高级函数使用的数据/函数.