自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 设计模式:工厂模式

public interface Product { }public class ConcreteProduct implements Product { }public abstract class Creator { protected abstract Product factoryMethod(); public void someOpe

2012-08-27 17:12:11 369

原创 重构:Replace Temp with Query

在程序中用了一个临时变量保存某一个表达式的运算结果,重构手法是将这个表达式提炼到一个独立函数中,将这个临时变量的所有引用点替换为对新函数的调用,此后,新函数就可以被其他函数使用 临时变量存在的问题是:它们是暂时的,而且只能在所属函数中使用,由于临时变量只能在所属函数中可见,所以它会驱使你写出更长的函数。 Replace Temp with Query往往是运用Extract Met

2012-08-27 10:24:50 452

原创 蜂窝系统

1、蜂窝系统中两个需要解决的问题,multiple access和interference management2、multiple access:how the overall resource of the system is shared by the uses in the same cell3、interfence management:the interfence caused

2012-08-24 19:12:51 506

原创 重构:Inline Temp

你有一个临时变量,只被一个简单表达式赋值一次,而它妨碍了其他重构手法那就将对该变量的引用动作,替换为对它赋值的那个表达式自身 Inline Temp多半是作为Replace Temp with Query的一部分使用的,所以真正的动机出现在后者那里。唯一单独使用Inline Temp的情况是:你发现某个临时变量被赋予某个函数调用的返回值。一般来说,这样的临时变量不会有任何危害,可以放心

2012-08-21 19:29:02 253

原创 重构:Inline Method

在函数调用点插入函数本体,然后移除该函数 有时候会遇到某些函数,其内部代码和函数名称同样清晰易读,也可能是因为 重构了这个函数使得内容和名称变得同样清晰,果真如此就应该去掉该函数,直接使用其中的代码,间接性可能带来帮助,但是非必要的间接性总是让人不舒服。另一种需要使用Inline Method的情况是:你手上有一群组织不甚合理的函数,你可以将它们都内联到一个大型函数中,再从中提炼组织合

2012-08-21 19:14:14 264

原创 重构:Extract Method

1、创造一个新函数,根据这个函数的意图对它命名,以做什么来命名,而不是以怎样做命名2、将提炼出的代码从源函数复制到新建的目标函数中3、仔细检查提炼出的代码,看看其中是否引用例如“作用于限于源函数”的变量,包括局部变量和源函数参数4、检查是否有仅用于被提炼代码段的临时变量,如果有,在目标函数中将它们声明为临时变量5、检查被提炼的代码段,看看是否有任何局部变量的值被它改变,如果一个临时

2012-08-21 14:44:14 293

原创 重构:基本原则

1、  任何不被修改的变量都可以作为参数传入新函数2、  如果只有一个变量会被修改,则可以把这个变量作为返回值3、  为了提高代码的清晰度,需要修改某些东西的名字,就大胆去做4、  阅读代码的时候,经常进行重构,不断把理解嵌入到代码中,这么以来才不会造成忘记曾经理解过的东西5、  尽量出去临时变量,临时变量会助长冗长而复杂的函数6、  最好不要在另外一个

2012-08-18 18:17:38 428

原创 C和C++中函数调用约定

1、__stdcall:由被调用函数整理栈,函数参数自右向左入栈2、_cdcel:由调用者调整栈,函数参数自右向左入栈,是C和C++的默认调用方式,如果函数支持可变长度的参数,则只能采用这种调用方式3、__fastcall:由被调用的函数整理栈,参数通过寄存器传递,剩下的参数采用自右向左入栈

2012-08-16 16:46:55 597

原创 C++中类的虚析构函数

CBase * pBase;CChild c;pBase = &c; 因为多态的存在,撤销pBase的时候可以保证能够调用到虚析构函数析构函数可以是内联函数

2012-08-16 16:10:01 356

原创 C++中的类型转换

dynamic_cast:   通常在基类和派生类之间转换时使用;   const_cast:   主要针对const和volatile的转换.      static_cast:   一般的转换,如果你不知道该用哪个,就用这个。      reinterpret_cast:   用于进行没有任何关联之间的转换,比如一个字符指针转换为一个整形数。

2012-08-16 15:59:25 182

原创 java client socket备忘

2012年5月17日1、数据分段成帧之后需要考虑的问题:数据帧的丢失和乱序。2、数据分段成帧之后,需要考虑的问题:数据如何分段、产生数据帧头部、分析数据帧头部、记录哪些帧没有正确传输、乱序重排。3、使用scoket之后的效果:socket屏蔽了网络协议底层的细节,利用socket可以把数据的收发当做流来处理。4、socket的作用:连接到远端的电脑、发送数据、接收数据、关闭一个连接

2012-05-18 17:11:12 320

原创 浮点数格式备忘

浮点数格式备忘32位浮点数格式32位浮点数从高位到低位依次是1bit符号位,8bits阶码和23bit尾数部分,其中尾数部分为纯小数,计算的时候需要加1。浮点数1.0浮点数1.0在C++程序中的存储方式为0x3f 0x80, 0x00, 0x00换算为二进制数据为0011 1111 1000 0000 0000 0000 0000 0000其中符号位为0,表明这是一

2012-05-10 10:37:00 524

空空如也

空空如也

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

TA关注的人

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