上一页 1 ··· 8 9 10 11 12
  2013年8月9日
摘要: 一. 里氏代换原则定义:子类型必须能够替换它们的父类型。[DH]解释:也就是说,在软件里面,把父类都替换成子类,程序的行为没有变化。也只有这样父类才能真正被复用,而子类也能够在父类的基础上增加新的行为。这个原则是对继承的一个约束,也就是说,继承中子类严格满足"is-a"的关系。所以,当你看到一个继承的时候,要习惯性的把他的父类和子类看成一个整体,这样会有助于你去理解各个类之间的关系。由于里氏代换的原则,才使得开放-封闭成为了可能。正是由于子类型的可替换性才使得父类类型的模块在无需修改的情况下就可以扩展。例如:这个继承关系就不满足里氏代换原则。二. 单一职责原则定义:就一个类 阅读全文
posted @ 2013-08-09 12:03 any91 阅读(328) 评论(0) 推荐(0) 编辑
摘要: 一. 问题在面向对象系统的分析与设计过程中经常会遇到这样一种情况:对于某一个业务逻辑(算法实现)在不同的对象中有不同的细节实现,但是逻辑(算法)的框架(或通用的应用算法)是相同的。Template提供了这种情况的一个实现框架。二. 模式Template 模式是采用继承的方式实现这一点:将逻辑(算法)框架放在抽象基类中,并定义好细节的接口,子类中实现细节。三. 代码[cpp] view plaincopy//抽象基类,实现了一个模板方法classAbstractClass{public:virtual~AbstractClass(){}//模板方法,只在抽象基类中实现voidTemplateMe 阅读全文
posted @ 2013-08-09 12:02 any91 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 一. 类类图分三层:第一层是类的名称,如果是抽象类,则用斜体显示。第二层是类的特性,通常就是字段和属性。第三层是类的操作,通常是方法或行为。注意 '+' 表示 public,'-' 表示 private,'#' 表示 protected 。[cpp] view plaincopyclassAnimal{public:voideat();voidbirth();public:boollief;};二. 继承关系继承关系用 空心三角 + 实线 来表示。三. 聚合关系聚合关系表示一种 弱 的 “拥有” 关系,体现的是A对象可以包含B对象,但B对象不是A 阅读全文
posted @ 2013-08-09 12:01 any91 阅读(222) 评论(0) 推荐(0) 编辑
摘要: 一.概念单例模式:其意图是保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。[cpp] view plaincopyclassCSingleton{//公有的静态方法,来获取该实例public:staticCSingleton*GetInstance(){if(m_pInstance==NULL)//判断是否第一次调用m_pInstance=newCSingleton();returnm_pInstance;}//私有构造函数,防止实例化private:CSingleton(){};//私有静态指针变量,指向类的唯一实例private:staticCSinglet 阅读全文
posted @ 2013-08-09 12:00 any91 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 1. 聚合:是关联关系的一种特例,体现的是整体与部分拥有的关系,即 has-a 的关系,此时整体与部分之间可以分离。[cpp] view plaincopy//学校classSchool{};//学生classStudent{private:School*ps;};可以看到 Student 类中包含了一个 School 类的对象指针,而且在创建一个Student 类对象时一定要对指针进行初始化,就好像当你上学时一定会有一个学校!这个时候,我们可以说 Student 的每一个对象都有一个School 的属性来标识它是属于哪个学校的!但是两者之间并不存在“同生共死”的关系,也就是说当这个学生不存在 阅读全文
posted @ 2013-08-09 11:57 any91 阅读(257) 评论(0) 推荐(0) 编辑
  2013年8月8日
摘要: mysql实现海量数据的存储、访问的解决方案: mysql数据库水平切分的实现原理可分为以下几个:分库,分表,主从,集群,负载均衡器等第1章 引言随着互联网应用的广泛普及,海量数据的存储和访问成为了系统设计的瓶颈问题。对于一个大型的互联网应用,每天几十亿的PV无疑对数据库造成了相当高的负载。对于系统的稳定性和扩展性造成了极大的问题。通过数据切分来提高网站性能,横向扩展数据层已经成为架构研发人员首选的方式。水平切分数据库,可以降低单台机器的负载,同时最大限度的降低了了宕机造成的损失。通过负载均衡策略,有效的降低了单台机器的访问负载,降低了宕机的可能性;通过集群方案,解决了数据库宕机带来的单点数据 阅读全文
posted @ 2013-08-08 09:33 any91 阅读(791) 评论(0) 推荐(0) 编辑
  2013年8月6日
摘要: 引自:http://www.sensail.com/archives/85他们的存储方式和数据的检索方式都不一样。数据的检索效率是:char>varchar>text空间占用方面,要具体情况具体分析了。CHAR(M)M个字节,0 desc test;+-------+------------+------+-----+---------+-------+| Field |Type| Null | Key | Default | Extra |+-------+------------+------+-----+---------+-------+|a| mediumtext | Y 阅读全文
posted @ 2013-08-06 09:35 any91 阅读(974) 评论(0) 推荐(0) 编辑
  2013年8月3日
摘要: php中的sprinf可以格式化字符串的数据类型。今天遇到了想在其中输出%,可难倒我了。$query = sprintf("select * from books where %s like '% %s %'",$searchtype,$searchterm);//我以为输出是这样的:select * from books wheretitle like '%java %' ,但实际上输出会是select * from books wheretitle like '%将其换成这样就可以了:$query = sprintf(" 阅读全文
posted @ 2013-08-03 11:15 any91 阅读(9332) 评论(0) 推荐(0) 编辑
  2013年8月1日
摘要: 1、不要认为红黑树仅仅是在二叉树的节点上涂上颜色,他们最根本的区别是,红黑树根据节点涂色的约束限制,最终形成的树的结构与普通二叉树不同,最重要的是,其树的高度大大缩短,从而在查找、增删改等方面提高效率。2、B树,不是二叉树,节点可以有多个孩子,B树产生于解决磁盘扫描效率的问题,B树这种结构将相近的数据尽可能的放在一起,从而减少磁盘扫描的跨度,最明显的应用就是数据库系统的索引。B+树类似于B树,只不过,B树把关键字和实际数据存在一块,而B+树在节点上只存关键字,存个指针指向实际数据 阅读全文
posted @ 2013-08-01 10:45 any91 阅读(567) 评论(0) 推荐(0) 编辑
上一页 1 ··· 8 9 10 11 12