[英]How do Java and C# mimic header file construction?
Michael Scott编写的《 Programming Language Pragmatics》第4版说Java和C#可以模仿C和C ++中的头文件:
为了模仿早期头文件构建的软件工程实践,Java或C#设计团队可以创建其程序包或名称空间(其公共类)的框架版本,然后由负责该功能的程序员同时并独立地使用它们。完整版本 。
这是什么意思:
“创建其包或名称空间(的公共类)的框架版本”
“由负责完整版本的程序员同时并独立使用”?
谢谢。
“创建其包或名称空间(的公共类)的框架版本”
这意味着设计人员在编写Java或C#源代码时缺少部分或全部实现细节。 例如接口
“由负责完整版本的程序员同时并独立使用”?
这意味着程序员将编写其余代码。
这意味着创建没有实现的类的版本。 在C#中,通常的方法是使所有成员抛出NotImplementedException
。 例如:
public class Database
{
public IEnumerable<Employee> GetAllEmployees() => throw new NotImplementedException();
}
一种类似的方法是只创建接口,而不创建实现它们的类,例如:
public interface IDatabase
{
IEnumerable<Employee> GetAllEmployees();
}
尽管这种方法在某些方面限制了您的设计,例如,您不能将其用于具有公共静态成员的类型。
通过这两种方法,即使尚未实现,其他程序员也可以开始编写使用Database
/ IDatabase
代码。 这种做法的一个问题是,那些程序员无法测试他们的代码,除非他们创建了自己的测试实现(例如,使用模拟)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.