主动新建和被动新建的区别

       主动新建被动新建是软件编程中常用的两种对象创建方式。它们的区别在于对象的创建方式和控制权的归属。

1. 主动新建(Active Creation):主动新建是指由对象本身负责创建其他对象。在主动新建的情况下,一个对象可以直接创建并管理其他对象的生命周期。这种方式通常用于对象之间存在紧密的关联关系,其中一个对象是另一个对象的拥有者或管理者。例如,在一个系统中,一个任务管理器对象可以主动创建和管理多个任务对象。

2. 被动新建(Passive Creation):被动新建是指一个对象由外部实体负责创建,并通过参数或者回调将创建好的对象传递给被创建对象。在被动新建的情况下,一个对象没有直接的创建能力,它依赖于外部实体来提供创建的对象。这种方式通常用于降低对象之间的耦合性,让对象之间更加独立和可复用。例如,在一个系统中,一个用户界面对象可以通过回调函数接收到用户输入,并由一个工厂对象来创建和传递给用户界面对象。

        总体来说,主动新建适用于对象之间有紧密的关联关系,并且创建对象的职责明确归属于某个对象;而被动新建适用于对象之间的关联较弱,并且创建对象的职责需要由外部实体来承担。选择使用哪种方式取决于具体的需求和设计目标。

在网络环境中,TCP的主动新建和被动新建与上述理解是有一些相似之处,但也有一些不同。

        主动新建(Active Open)是指客户端发起与服务器端的连接的过程。客户端发送一个特殊的TCP报文段,称为SYN(同步)报文段,到服务器端的指定端口。服务器在收到SYN报文段后,发送一个SYN-ACK报文段作为响应,表示对连接的确认。最后,客户端收到服务器的SYN-ACK报文段后,发送一个ACK报文段,表示连接已建立。

        被动新建(Passive Open)是指服务器端等待客户端发起连接的过程。服务器监听指定端口,当收到客户端发来的SYN报文段时,服务器发送一个SYN-ACK报文段作为响应,表示对连接的确认。然后,客户端收到服务器的SYN-ACK报文段后,发送一个ACK报文段,表示连接已建立。

        主动新建和被动新建的主要区别在于发起连接的一方。在主动新建中,客户端主动发起连接,而在被动新建中,服务器端等待客户端发起连接。这种区别是由于在网络通信中,客户端通常需要主动向服务器发起请求,并建立连接,而服务器则负责接收和处理客户端请求。

        总的来说,主动新建和被动新建描述了TCP连接的建立过程,其中主动新建指客户端发起连接,被动新建指服务器端等待客户端连接。这两种方式在网络环境中是常见的连接建立方式。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值