自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

原创 TCP/IP详解看书笔记

第一章 概述链路层, 有时也称作数据链路层或网络接口层TCP(传输控制协议)为两台主机提供高可靠性的数据通信。它所做的工作包括把应用程序交给它的数据分成合适的小块交给下面的网络层,确认接收到的分组,设置发送最后确认分组的超时时钟等。UDP则为应用层提供一种非常简单的服务。它只是把称作数据包的分组从一台主机发送到另一台主机,但并不在保证该数据报能到达另一端。任何必需的可靠性由应用层来提供.一个互连网就是一组通过相同协议族互连在一起的网络。构造互连网最简单的方法是把两个或多个网络通过路由器进行连接。

2020-06-30 21:02:07 506

原创 stl_tree.h 源码剖析

<STL源码剖析>导览关联式容器所谓关联式容器,观念上类似关联式数据库,每组数据都有一个键值(key)和一个实值(value)。当元素被插入到容器中时,容器内部结构(RB-Tree,或者是hash-table)便依照其键值大小,以某种特定规则将这个元素放置于适当位置。一般而言,关联式容器的内部结构是一个balanced binary tree(平衡二叉树),以便获得良好的搜寻效率.平衡二叉树有许多种类,包含AVL-tree,RB-tree,AA-tree.二叉搜索树所谓二叉搜

2020-05-13 23:44:25 583

原创 stl_deque.h源码剖析

deque概述<stl源码剖析>vector是单向开口的连续线性空间,deque则是双向开口的连续线性空间。双向开口,意思是可以在头尾两端分别做元素的插入和删除操作。deque和vector最大的差异,在于deque允许于常数时间内对头端进行元素的插入或移除操作,二在于deque没有所谓的容量概念,因为它是动态的以分段连续的空间组合而成,随时可以增加一段新的空间并链接起来。像vector那样"因旧空间不足而重新配置一块更大空间,然后复制元素,在释放旧空间",这样的事情在deque是不会发

2020-05-12 23:43:24 262

原创 stl_vector.h源码剖析

vector简述<STL源码剖析>vector是动态空间,随着元素的加入,它的内部机制会自行扩充扩建以容纳新元素。因此,vector的运用对于内存的合理利用与运用的灵活性有很大的帮助vector的实现技术,关键在于其对大小的控制以及重新配置时的数据移动效率。一旦vector有空间满载,此时扩充空间时"配置新空间/数据移动/释还旧空间"的大成本,时间成本很高。vector实现template <class T, class Alloc = alloc> // 默认allo

2020-05-11 22:43:23 599

原创 stl_list.h源码剖析

容器list双向环形链表list相较于vector的连续线性空间,list显得复杂许多,好处是每次插入或者删除一个元素,就配置或释放一个元素空间。因此list对于空间的运用绝对精准,一点也不浪费。而且对于任何位置的元素插入和元素移除,list永远是常数时间<STL源码剖析>相关图节点设计template <class T>struct __list_node { typedef void* void_pointer;//缺陷,使用时都得强转成_list_node类型

2020-05-11 20:55:15 230

原创 ACE框架相关

ACE框架类图/流程图

2020-05-08 20:36:17 58

原创 深度探索C++对象模型(笔记)

(4)虚函数 不管几个虚函数,sizeof()都是多了4个字节。(4.1)类只要有两个虚函数,这个这个类会产生一个只想 虚函数的指针有两个虚函数,那么这个类就会产生两个指向虚函数的指针。//类本身 指向虚函数的 指针(一个或者一堆)要有地方存放,存放在一个表格里。这个表格我们成为虚函数 virtual table vtbl。这个虚函数一般是保存在可执行文件中的,在程序执行的时候载入到内存中...

2020-05-08 19:48:24 2370

原创 stl_alloc.h源码剖析

本文主要介绍std::allocstl_alloc.h内存配置操作由 alloc:allocate()负责内存释放操作由alloc::deallocate()负责stl_construct.h对象构造操作由::construct()负责对象析构操作由::destory()负责空间的配置与释放 std::allocSGI设计哲学:向system heap要求空间考虑多线...

2020-03-02 23:42:46 362

原创 15 设计模式_代理模式(Proxy)

Proxy代理模式动机(Motivation)在面向对象系统中,有些对象由于某种原因(比如对象创建的开销很大,或者某些操作需要安全控制,或者需要进程外的访问等), 直接访问会给使用者、或者系统结构带来很多麻烦。间接访问,接口隔离。如何在不失去透明操作对象的同时来管理/控制这些对象特有的复杂性?增加一层间接层是软件开发中常见的解决方式。模式定义为其他对象提供一种代理以控制...

2020-02-19 18:50:25 75

原创 14 设计模式_门面模式(Façade)

Façade(门面模式)动机(Motivation)客户和组件中各种复杂的子系统有过多的耦合,过多的耦合面临很多变化的挑战。如何简化外部客户程序和系统间的交互接口?如何解耦?将子系统划分为若干个子系统有利于降低系统的复杂性。一个常见的设计目标是使子系统间的通信和依赖关系达到最小。该目标的途径之一就是引入一个外观(Façade)对象,为子系统中较为一般的设施提供了一个单一而简介的界面。...

2020-02-17 23:10:07 185

原创 13 设计模式_享元模式(Flywight)

Flywight享元模式动机(Motivation)在软件系统采用纯粹对象方案的问题在于大量细粒度的对象会很快充斥在系统中,从而带来很高的运行时代价——主要指内存需求方面的代价如何在避免大量细粒度对象问题的同时,让外部客户程序仍然能够透明地使用面向对象的方式来进行操作?模式定义运行共享技术有效地支持大量细粒度的对象。举个例子对象池内部状态与外部状态内部状态是由工厂方法...

2020-02-17 22:43:08 184

原创 12 设计模式 单例模式(Singleton)

Singleton单例模式动机(Motivation)在软件系统中,经常有这样一些特殊的类,必须保证它们在系统中只存在一个实例,才能确保它们的逻辑正确性、以及良好的效率。如何绕过常规的构造器,提供一种机制来保证一个类只有一个实例?这应该是类设计者的责任,而不是使用者的责任模式定义保证一个类仅有一个实例,并提供一个该实例的全局访问点。举个例子其实单例模式重点是对static的...

2020-02-17 01:01:09 100

原创 11 设计模式_构建器(Builder)

Builder 构建器动机(Motivation)在软件系统中,有时候面临着“一个复杂对象”的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起的算法却相对稳定如何应对这种变化?如何提供一种“封装机制”来隔离出“复杂对象的各个部分”的变化,从而保持系统中的“稳定构建算法”不随着需求改变而改变模式定义将...

2020-02-16 23:35:23 126

原创 9 设计模式_抽象工厂(Abstract Factory)

Abstract Factory 抽象工厂动机(motivation)在软件系统中,经常面临着“一系列相互依赖的对象”的创建工作;同时,由于需求的变化,往往存在更多系列对象的创建工作.如何应对这种变化?如何绕过常规的对象创建方法(new),提供一种“封装机制”来避免客户程序和这种“多系列具体对象创建工作”的紧耦合。模式定义提供一个接口,让该接口负责创建一系列“相关或者相互依赖的对象...

2020-02-16 22:44:39 127

原创 8 设计模式_工厂模式(Factory Method)

Factory Method工厂方法“ 对象创建” 模式通过“对象创建” 模式绕开new,来避免对象创建(new)过程中所导致的紧耦合(依赖具体类),从而支持对象创建的稳定。它是接口抽象之后的第一步工作。典型模式Factory MethodAbstract FactoryPrototypeBuilder动机(Motivation)在软件系统中,经常面临着创建对象的工作...

2020-02-16 21:06:17 121

原创 7 设计模式_桥接模式(Bridge)

Bridge 桥模式动机(Motivation)由于某些类型的固有的实现逻辑,使得它们具有两个变化的维度,乃至多个纬度的变化。装饰模式的扩展。如何应对这种“多维度的变化”?如何利用面向对象技术来使得类型可以轻松地沿着两个乃至多个方向变化,而不引入额外的复杂度模式定义*将抽象部分(业务功能)与实现部分(平台实现)分离,使它们都可以独立地变化举个例子*使用模式前class...

2020-02-16 20:38:30 116

原创 6 设计模式_装饰模式(Decorator)

Decorator 装饰模式“单一职责”模式:在软件组件的设计中,如果责任划分的不清晰,使用继承得到的结果往往是随着需求的变化,子类急剧膨胀,同时充斥着重复代码,这时候的关键是划清责任典型模式DecoratorBridge动机 (Motivation)在某些情况下我们可能会“过度地使用继承来扩展对象的功能”,由于继承为类型引入的静态特质,使得这种扩展方式缺乏灵活性;并且随...

2020-02-16 20:02:20 95

原创 5 设计模式_观察者模式(Observer)

Observer 观察者模式动机(Motivation)在软件构建过程中,我们需要为某些对象建立一种“通知依赖关系” ——一个对象(目标对象)的状态发生改变,所有的依赖对象(观察者对象)都将得到通知。如果这样的依赖关系过于紧密,将使软件不能很好地抵御变化。使用面向对象技术,可以将这种依赖关系弱化,并形成一种稳定的依赖关系。从而实现软件体系结构的松耦合模式定义定义对象间的一种一对多(...

2020-02-16 18:58:13 253

原创 4 设计模式_策略模式(Strategy)

Strategy 策略模式动机(Motivation)在软件构建过程中,某些对象使用的算法可能多种多样,经常改变,如果将这些算法都编码到对象中,将会使对象变得异常复杂;而且有时候支持不使用的算法也是一个性能负担.变化的部分,算法如何在运行时根据需要透明地更改对象的算法?将算法与对象本身解耦,从而避免上述问题?定义定义一系列算法,把它们一个个封装起来,并且使它们可互相替...

2020-02-16 16:45:05 184

原创 3 设计模式_模板方法(Template Method)

GOF-23 模式分类

2020-02-16 15:31:12 156

原创 2 设计模式_面向对象设计原则

面向对象设计,为什么?变化是复用的天敌,面向对象设计最大的优势在于:抵御变化!重新认识面向对象理解隔离变化从宏观层面来看,面向对象的构建方式更能适应软件的变化,能将变化所带来的影响减为最小。...

2020-02-16 11:58:56 94

原创 1 设计模式_介绍

学习目标理解松耦合设计思想掌握面向对象设计原则掌握重构技法改善设计掌握GOF核心设计模式

2020-02-16 11:19:16 136

原创 ACE proactor网络通信

ACE proactor网络通信

2019-04-28 19:55:34 1031 3

原创 游戏服务器之定时器

#游戏服务器之定时器

2018-11-16 15:29:45 2122

原创 游戏服务器之技能系统篇

技能及战斗流程

2018-11-16 15:28:57 3253

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除