2022年3月19日

摘要: 1. 单一职责模式概念:在软件组件的设计中,如果责任划分的不清晰,使用继承得到的结果往往是随着需求的变化,子类急剧膨胀,同时充斥着重复代码,这时候的关键是划清责任。 2. 单一职责模式包含有:装饰模式和桥模式 3.装饰模式(Decorator) 动机:在某些情况下我们可能会“过度地使用继承来扩展对象 阅读全文
posted @ 2022-03-19 14:11 焱琰 阅读(107) 评论(0) 推荐(0) 编辑

2022年3月15日

摘要: 1. 组件协作模式通过晚期绑定,来实现框架与应用之间的松耦合,是二者之间协作时常用的模式 2. 包含有:模板方法,策略模式、观察者模式(事件模式) 3.模板方法:(Template Method) 动机:在软件构建过程中,对于某一项任务,它常常有稳定的整体操作结构,但各个子步骤之间却有很多改变的需求 阅读全文
posted @ 2022-03-15 14:17 焱琰 阅读(50) 评论(0) 推荐(0) 编辑
 
摘要: 1.模式分类 按目的: 创建型模式:将对象的部分创建工作时延时子类或者其他对象,从而应对需求变化为对象创建是具体实现引来的冲击 结构型模式:通过类继承或者对象组合获得更具灵活的结构,从而应对需求变化为对象的结构带来的冲击 行为型模式:通过类继承或者对象组合来划定类与对象之间的职责,从而应对需求变化为 阅读全文
posted @ 2022-03-15 11:06 焱琰 阅读(357) 评论(0) 推荐(0) 编辑
 
摘要: 1.什么是设计模式 每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心,这样我们就能一次一次地使用该方案而不用重复劳动。设计的金科玉律是复用性。需要注意的是,这里的复用性并不指源代码层面的复用性,而是在源代码进行编译测试部署之后的二进制码的复用性。 2. 面向对象能够隔离变 阅读全文
posted @ 2022-03-15 10:52 焱琰 阅读(40) 评论(0) 推荐(0) 编辑

2022年3月5日

摘要: 1. 配置器分为一级配置器和二级配置器,默认为二级配置器,二级配置器处理不了的大空间丢给一级配置器 2. list和vector区别: a.vector可能因为元素变化而导致迭代器失效,list不会 b.list只能使用自己的成员函数sort,不能使用stl算法sort c.list是双向环形链表, 阅读全文
posted @ 2022-03-05 19:11 焱琰 阅读(160) 评论(0) 推荐(0) 编辑

2021年12月17日

摘要: 一、网络I/O的阻塞、非阻塞,同步、异步 典型的一次lO的两个阶段是什么?数据就绪和数据读写数据就绪: 根据系统lO操作的就绪状态 ·阻塞·非阻塞 数据读写:根据应用程序和内核的交互方式 ·同步·异步 一个典型的网络IO接口调用,分为两个阶段,分别是"数据就绪"和“数据读写",数据就绪阶段分为阻塞和 阅读全文
posted @ 2021-12-17 11:25 焱琰 阅读(493) 评论(0) 推荐(0) 编辑

2021年12月14日

摘要: 一、UDP通信 服务端代码: /* #include <sys/types.h> #include <sys/socket.h> ssize_t sendto(int sockfd, const void *buf, size_t len, int flags, const struct socka 阅读全文
posted @ 2021-12-14 14:19 焱琰 阅读(472) 评论(0) 推荐(0) 编辑

2021年12月13日

摘要: 一、什么是I/O多路复用 I/O多路复用,I/O就是指的我们网络I/O,多路指多个TCP连接(或多个Channel),复用指复用一个或少量线程。串起来理解就是很多个网络I/O复用一个或少量的线程来处理这些连接。I/O 多路复用使得程序能同时监听多个文件描述符,能够提高程序的性能,Linux 下实现 阅读全文
posted @ 2021-12-13 20:41 焱琰 阅读(542) 评论(0) 推荐(0) 编辑
 
摘要: 一、多进程实现并发 思路: 1.一个父进程,多个子进程。 2.父进程:负责等待并接受客户端的连接。 3.子进程:完成通信,接受一个客户端连接,就创建一个子进程用于通信。 服务器端: /* 多进程版本 */ #include<stdio.h> #include<arpa/inet.h> #includ 阅读全文
posted @ 2021-12-13 14:59 焱琰 阅读(179) 评论(0) 推荐(0) 编辑

2021年12月11日

摘要: 一、TCP通信 1.1 TCP与UDP 1.2 TCP通信流程 通信的流程 服务器端 (被动接受连接的角色) 1. 创建一个用于监听的套接字 - 监听:监听有客户端的连接 - 套接字:这个套接字其实就是一个文件描述符 2. 将这个监听文件描述符和本地的IP和端口绑定(IP和端口就是服务器的地址信息) 阅读全文
posted @ 2021-12-11 14:00 焱琰 阅读(317) 评论(0) 推荐(0) 编辑