首页 > 试题广场 >

将一组大程序分解为一系列的子程序过程的好处是什么?试分析,

[问答题]

将一组大程序分解为一系列的子程序/过程的好处是什么?试分析,在客户程序的设计实现时,为什么为什么要先抽象为connectTCP( machine, service )和connectUDP( machine, service )两个模块,而这两个模块又具有共同的底层模块connectsock?

一个模块化的程序比一个等价的单个程序容易理解、排错和修改。
如果程序员认真的设计了过程,还可以在其他程序中重新使用这些过程。
另外,仔细选择过程可以使程序更容易移植。

过程通过将细节隐藏起来,提高了程序员所用语言的级别。

构造客户和服务器的时候,使用网络服务的程序包括了一大堆枯燥的细节,(如端点地址等)使用过程来隐藏细节将减少出错的机会。

使用过程(以及它所提供的较高级的的操作)可以避免重复,使用者可以在许多程序中使用他们,不需要再考虑实现的细节。

如能回答:多数代码需要分配套接字、绑定地址并构成网络连接,这些重复出现因而可以重用;TCP/IP网络是异种网互联,代码需要运行在不同机器的体系结构上,因而便于移植,

抽象:客户端应用程序请求服务只能通过传输层,
而传输层有两种协议TCP和UDP,因此抽象的时候可分为两种情况。

参数抽象如下:连接需要指明服务器的IP地址和服务类型(端口号)

客户端采用TCP和UDP共同的步骤都是获得套接字ID,因此可以考虑将获得套接字ID的过程合并,仅仅采用参数来标明到底采用何种传输层协议。
同时仍然需要传递的参数为服务器的IP地址和服务类型(端口号),所以将底层共用一个过程connectsock。
发表于 2017-05-07 20:06:14 回复(0)