tom

设计模式-软件设计原则3-依赖倒置原则

六眼飞鱼酱① 提交于 2019-11-26 23:11:35
依赖倒置原则(Dependence Inversion Principle,DIP)是指设计代码结构时,高层模块不应该依赖底层模块,二者都应该依赖其抽象。抽象不应该依赖细节;细节应该依赖抽象 。 通过依赖倒置,可以减少类与类之间的耦合性,提高系统的稳定性,提高代码的可读性和可维护性,并能够降低修改程序所造成的风险 。 接下来看一个案例,还是以课程为例,先来创建一个类Tom: 1 package com.lch.test.inversedependency; 2 3 public class Tom { 4 public void studyJavaCourse() { 5 System.out.println("tom正在 学习Java课程"); 6 } 7 8 public void studyPythonCounse() { 9 System.out.println("tom正在学习 python课程"); 10 } 11 } 来调用 一下: 1 package com.lch.test.inversedependency; 2 3 public class StudyCourseTest { 4 public static void main(String[] args) { 5 Tom tom = new Tom(); 6 tom.studyJavaCourse(); 7

sip会话流程以及sip介绍(2)

帅比萌擦擦* 提交于 2019-11-25 20:09:51
下面我们通过一个简单的场景例子来简单介绍一下 SIP 会话流程。 Tom 和 Jerry 是非常好的伙伴,Tom 在他的 PC 上使用一个 SIP 的应用程序呼叫 Internet 上另一个 SIP 电话用户 Jerry。 1. 注册过程 : SIP 注册过程是建立用户当前 IP 地址与用户URI之间的对应关系。首先,Tom 和 Jerry 的 SIP 应用程序或者硬件设备,需要 在网络中注册。 之后终端需要知道代理呼叫会话控制功能( P-CSCF)的地址。 P-CSCF 是终端向网络中发送所有 SIP 消息的惟一入口,用于 SIP 出站代理,注册完成后服务于所有其他 SIP 信令。该地址可以预先配置,在没有配置的情况下,终端可以在建立的通用或专用 PDP 信令上下文的过程中请求该地址。 Tom 的终端首先会 生成一个 REGISTER 请 求,该请求中的相关信息从 Tom 的用户标识模块 (USIM) 的 IP 多媒体服务标识模块(ISIM)中获取。请求 经过 P-CSCF 和 I-CSCF(问询呼叫会话控制功能)为 Tom 指定一个 S-CSCF (服务呼叫会话控制功能)。S-CSCF 负责根据请求信息建立 用户标识与终端 IP 地址的对应绑定 关系。 清单 1. 构造的 REGISTER 消息 1 2 3 4 5 6 7 8 9 10 11 12 13 14 REGISTER