- 博客(44)
- 收藏
- 关注
原创 日志系统——格式化模块
日志系统的日志输出格式可以有用户自定义传入,在进行格式化时,需要根据用户期望的格式按一定的顺序进行格式化,于是格式化模块需要在具体的事件通过具体的对象完成具体位置的格式化操作。
2024-08-05 16:54:24
314
1
原创 日志系统——设计原则&&设计模式
模块与模块之间的交互应通过抽象类来实现,而非具体类,当项目中设计到大量类的声明并且这些类具有共同的特征时,建议使用工厂模式来实现对象的创建和使用分离,(派生于同一抽象基类的派生类创建不直接通过构造函数实例化,而是通过一个工厂对象统一实例化)**单一职责原则:**高内聚,低耦合,模块与模块之间需要最大程度地解耦合,一个模块中的属性和方法应与其处理的任务紧密相关,对于非模块本身的任务通过接口来让其他模块处理。建造者模式中涉及五个角色:抽象产品类,具体产品类,抽象建造者,具体建造者,指挥者。
2024-08-04 14:56:22
707
原创 日志系统——杂碎知识
代表不定参数,传入的不定参数由__VA_ARGS__进行管理,当进行宏替换时__VA_ARGS__会对fmt进行格式化后与"%s-%d" "\n"绑定形成一个字符串由printf打印。va_arg的弊端在于必须告知编译器要以什么类型进行解析参数包,相比之下vasprintf的优势更大,可以自动根据传入的参数类型进行解包。:可变参数函数通常是递归的,第一步调用包中的第一个参数,剩余参数作为一个参数包传给下一层。##的作用是当用户传入的不定参数为空时,编译器可以将##之前的,号去除避免语法错误。
2024-08-04 14:11:04
255
原创 高并发内存池——链表设计
由于申请的空间块经过对齐之后大小至少为8,因此可以考虑在未被使用的内存块中取前8字节存储下一个空间的地址当threadcache中空间不足(过剩)时需要向centralcache申请(归还)一批指定大小的空间,所得到(归还)的空间往往不会只有一个,而是一段已经链接好的空间块,因此还需要在FreeList中实现和。
2024-07-26 17:09:51
417
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人