摘要:
工厂模式 定义 工厂父类负责定义创建对象的公共接口,子类则负责生成具体的对象 将类的实例化(具体产品的创建)延迟到工厂类的子类(具体工厂)中完成,即由子类来决定应该实例化哪个类 类图 组成 抽象产品 具体产品的父类,描述具体产品的公共接口 具体产品 抽象产品的子类,生产的具体产品 抽象工厂 具体工厂 阅读全文
摘要:
定义 为其他对象提供一种代理以控制对这个对象的访问 类图 时序图 角色定义 抽象主体角色:抽象类或者接口,普通业务的定义 具体主体角色:被代理角色,业务逻辑的具体执行者 代理主体角色:委托类,代理类 优缺点 优点 职责清晰,实现好内部结构即可,具体客户要求由代理进行分化 高扩展性:具体主体角色随时变 阅读全文
摘要:
简介 + 动态的给对象添加一些额外的职责,就增加功能来说,要比生成子类更加灵活 使用场景 + 在不影响其他对象的情况下,以透明、动态的方式给单个对象添加职责; + 处理可以撤销的职责 + 在不能采用生成子类的方法进行扩充时。 - 可能有大量独立的扩展,为支持的每一种组合将产生大量的子类,使得子类数量 阅读全文
摘要:
策略模式 定义 定义一系列的算法,把他们封装起来,并且使它们可以相互替换。该模式使得算法可独立于使用它们的客户而变化。 实现描述 使用的客户类中包含算法的抽象类,算法的具体实现类则继承抽象类并且具体实现算法接口,将算法的抽象类作为使用的客户类的构造参数,在客户类构造时传入。客户类在之后使用不同算法可 阅读全文
摘要:
GDB Command 启动/退出 run/r: 启动程序 run [arguments...] : 以 [arguments] 的参数启动程序,其中 [arguments...] 可选 run > [file_name]: 启动程序,程序的输入保存到 file_name 文件中 start : 运 阅读全文
摘要:
简单工厂模式 一个工厂类根据传入的参数,动态的决定去创建哪一个产品类。、 前言介绍 如果想要实现一个计算器功能,前台页面输入数字和运算符号,后台该如何去实现 简单版本 直接将输入的数字和运算符号做运算,返回结果 不同的运算符使用不同的函数计算,根据运算符调用不同函数; 面向对象版本 通过封装,使用一 阅读全文
摘要:
套接字 套接字介绍 socket 套接字是支持不同主机不同进程之间的通信 套接字函数 socket 套接字函数介绍 套接字编程 在服务端,套接字编程顺序为 套接字创建(socket),套接字绑定(bind),套接字监听(listen),循环等待套接字链接(accept),读写消息(write、rea 阅读全文
摘要:
信号量 介绍 信号量本质是一个计数器,用来统计临界资源数量的一个计数器,根据临界资源的数量,同步和互斥进程使用的临界资源。 信号量主要用来起到同步互斥的目的,和共享内存配合在进程间实现互斥的传输数据 信号量不仅可以用来在不同进程间的同步和互斥,还可以在线程间实现同步和互斥 函数 1. semget( 阅读全文
摘要:
共享内存 介绍 共享内存就是两个不相关的进程访问同一个逻辑内存,从而达到两个进程互相通信的效果。共享内存是两个正在运行的进程之间共享和传递数据最有快的一种通信方式; 实现原理 共享内存是两个进程地址通过页面映射到同一个物理地址; 特点 速度快:读写速度是最快的的进程通信方式; 共享内存的生命周期跟随 阅读全文
摘要:
消息队列 介绍 消息队列是一种进程间的通信方式,支持一个进程向另一个进程发送数据块。每一个数据块被认为含有一个类型,接收进程可以独立地接收含有不同类型的数据结构。 通过发送消息来避免命名管道的同步和阻塞问题,每个数据块都有一个最大长度的限制 在Linux中,使用 MSGMAX 和 MSGMNB 来限 阅读全文