11 2011 档案

摘要:软件设计方法(转载) 为在平台上解决一个问题,改来改去的跟了很久最后基本发现即可以实现的时候,移植到项目上发现有一个平台自带的无法解决的问题。也是搞了很久都没有解决问题,甚至不清楚问题到底出在哪里,无法继续下去了。 最后还是我同事帮忙一步步分析找到了问题的所在,系统就不支持这种方式。在解决这个问题的过程,我一直请教一个同事虽然他总是摆出一种不屑别人的逻辑和代码的样子。 但是我不得不承认,他在软件开发过程中给我感觉是非常棒的,他是非常讲求“效率,理论,方法,原理”;而他总是在实现一个功能或者解决问题时,要经过理论分析,推导,简化,逐步达到目的的方式,什么样的方法导致什么样的结果,要清清... 阅读全文
posted @ 2011-11-30 20:38 __Shadow 阅读(10848) 评论(0) 推荐(1) 编辑
摘要:快速排序一起泡排序每一次比较交换,选出最大的关键字放置到最后一个位置上。时间复杂度:O(n^2)例如: 二快速排序1 基本思想通过一趟排序将待排序的记录分割成独立的两部分,其中一部分记录的关键字均比另一部分的所有关键字小。然后再分别对这两部分继续进行相同的排序分割。树形结构如下: 通常选取待排序记录的第一个值作为基准比较值。2 实现过程(1)过程 (2)分组 (3)代码//交换两个数的值void swap(int& a,int &b){ a = a + b; b = a - b; a = a - b;}//起... 阅读全文
posted @ 2011-11-28 23:24 __Shadow 阅读(628) 评论(1) 推荐(0) 编辑
摘要:Factory Method模式1. 意图定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method使一个类的实例化延迟到其子类。2. 动机框架使用抽象类定义和维护对象之间的关系。这些对象的创建通常也由框架负责。在多文档框架中,两个主要的抽象是类Application和Document。客户必须通过它们的子类来做与具体应用相关的实现。例如,为创建一个绘图应用,我们定义类DrawingApplication和DrawingDocument。Application类负责管理Document并根据需要创建它们—例如,当用户从菜单中选择Open或N... 阅读全文
posted @ 2011-11-26 17:01 __Shadow 阅读(687) 评论(0) 推荐(1) 编辑
摘要:宏定义中使用do{}while(0)的好处#define MACRO_NAME(para) do{macro content}while(0)的格式,总结了以下几个原因:1,空的宏定义避免warning:#define foo() do{}while(0)2,存在一个独立的block,可以用来进行变量定义,进行比较复杂的实现。3,如果出现在判断语句过后的宏,这样可以保证作为一个整体来是实现:#define foo(x) /action1(); /action2();在以下情况下:if(NULL == pPointer) foo();就会出现action1和action2... 阅读全文
posted @ 2011-11-24 19:47 __Shadow 阅读(6669) 评论(0) 推荐(1) 编辑
摘要:Buileder(生成器)—对象创建型模式一 意图将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。二 适用性在以下情况使用Build模式:1 当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。2 当构造过程必须允许被构造的对象有不同的表示时。3 Builder模式要解决的也正是这样的问题: 当我们要创建的对象很复杂的时候(通常是由很多其他的对象组合而成), 我们要复杂对象的创建过程和这个对象的表示(展示)分离开来, 这样做的好处就是通过一步步的进行复杂对象的构建, 由于在每一步的构造过程中可以引入参数,使得经过相同的步骤创建最后得到的对象的展... 阅读全文
posted @ 2011-11-21 20:51 __Shadow 阅读(42286) 评论(0) 推荐(4) 编辑
摘要:Abstract Factory 模式一 意图 提供一个创建一系列相关或相互依赖对象的接口,而无需制定他们具体的类。二 逻辑 抽象工厂模式中的4中不同角色:1 抽象工厂(Abstract Factory): 它与应用系统商业逻辑无关。2 具体工厂(Concrete Factory): 这个角色直接在客户端的调用下创建产品的实例。 这个角色含有选择合适的产品对象的逻辑,而这个逻辑是与应用系统的商业逻辑紧密相关的。3 抽象产品(Abstract Product): 担任这个角色的类是工厂方法模式所创建的对象的父类,或它们共同拥有的接口。4 具体产品(Concrete Product... 阅读全文
posted @ 2011-11-18 08:50 __Shadow 阅读(672) 评论(0) 推荐(1) 编辑
摘要:插入排序直接插入排序的算法思想是:以数组的第一个元素作为基础,从第二个元素开始下标index = 1,依次到N。然后顺序的从下标0到下标index-1,与当前待插入的元素下标index进行比较,查找到合适的插入位置,然后将当前元素放到此位置上。两个循环:一是 从第二个元素开始,依次到N 二是 比较寻找合适位置,移动数组,插入元素两个过程:一是查找插入位置 二是将相应元素放到插入的位置上时间复杂度为:O(n^2)其实现算法如下:一 按照过程进行:bool sort_by_insert(int *src,int len){ int index = 1; int i,j... 阅读全文
posted @ 2011-11-16 23:39 __Shadow 阅读(693) 评论(0) 推荐(1) 编辑
摘要:工作也从开始C语言,转向现在的C++,表面上看得出,但实际中却没有把这种转变深入到思想中,究其原因还是对面向对象的软件设计不了解,有必要好好学习一下设计模式这个东东。本文就是设计模式学习第一篇…… 1 面向对象软件设计中的问题2 设计模式设计模式:某种问题通用性的解决方案,可重复的模式。就像是一种模具,使用这种模具可以批量性的生产某种东西一般。这里的设计模式是一个非常抽象性的概念,他是在某种场景中,针对某类问题,提出解决方案,以达到某种效果。“每一个模式描述了一个不断重复发生的问题以及该问题的解决方案的核心。3 MVC模式MVC(模型/视图/控制器)用来构建完整的用户界面(显示和响应)。基.. 阅读全文
posted @ 2011-11-13 23:40 __Shadow 阅读(1001) 评论(0) 推荐(1) 编辑
摘要:内心能不能宁静一点,做事能不能坚持一下 每次朋友问我怎么样,我总感觉不好回答,如果说实话我想他们或许是不能理解我的处境的,只能报以“还好”之类的语言,糊弄一下。唯一一次说了实话是:我坠落了,颓废,消极和迷茫。这就是我毕业到现在一直所处的状态,心中的一切都受到了颠覆,我无法适从,工作生活没激情也没热情,我不知道自己到底想要什么,时常感到莫名的沮丧,感觉自己只是行尸走肉般。 最近我又开始矛盾,我开始为自己寻找一种定位。我不是一个开朗的人,但我向往一种和大家伙一起谈天说地,轻松愉快的工作状态和环境。但是这里没有,我不想处在这种矛盾之中。我很浮躁,我向往宁静,我... 阅读全文
posted @ 2011-11-13 16:39 __Shadow 阅读(636) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示