Programming Language Pragmatics 4ed by Michael Scott说,Java和C#可以模仿C和C++头文件:Java和C#如何模仿头文件构造?
为了模仿早期头的软件工程实践网络文件建设, Java或C#设计团队可以创建的骨架版本(在公共类) 其包或命名空间,然后可以由并行和独立地由负责完整版本的程序员使用。
是什么意思:
“创建(公共类) 其包或命名空间的骨架版本的” 使用,同时
”独立,由程序员负责完整版本“?
谢谢。
Programming Language Pragmatics 4ed by Michael Scott说,Java和C#可以模仿C和C++头文件:Java和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
的代码,即使尚未完成实现。这种做法的一个问题是那些程序员不能测试他们的代码,除非他们创建他们自己的测试实现(例如使用模拟)。
它意味着它的意思。什么是骨架?骨头没有任何肉,意味着只是最终完成版本的定义。即使肉的肉不存在,您也可以在开发过程中使用该骨架代替最终构造。 –
这本书似乎没有那么有用。实际上,这可以通过定义Java接口(和一些数据对象),然后使用mock来处理客户端来完成。 – chrylis