上一页 1 2 3 4 5 6 ··· 16 下一页
摘要: 1、意图装饰模式:动态的给一个对象添加一些额外的职责(不重要的功能,只是偶然一次要执行)。就增加功能来说,Decorator模式比使用继承生成子类更为灵活。 建造过程不稳定,需要把所需的功能按正确的顺序串联起来进行控制。2、优缺点分析GOOD:当你向旧的类中添加新代码时,一般是为了添加核心职责或主要行为。而当需要加入的仅仅是一些特定情况下才会执行的特定的功能时(简单点就是不是核心应用的功能),就会增加类的复杂度。 装饰模式就是把要添加的附加功能分别放在单独的类中,并让这个类包含它要装饰的对象, 当需要执行时,客户端就可以有选择地、按顺序地使用装饰功能包装对象。3、UML标准图1)Compone 阅读全文
posted @ 2011-05-17 13:39 红脸书生 阅读(925) 评论(0) 推荐(1) 编辑
摘要: 一、意图 定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换,本模式使得算法可独立于使用它的客户而变化——四人团二、基本思想 定义算法家族,分别封装起来,让它们之间可以互相替换,让算法的变化,不会影响到使用算法的用户。 三、优缺点分析GOOD: (1)策略模式是一种定义一系列算法的方法,从概念上看,所有这些算法完成的都是相同的工作,只是实现不同。 所以使用策略模式,就可以以相同的方式调用所有的算法,减少了各种算法类与使用算法类之间的耦合。 (2)策略模式的Strategy类层次为Context定义了一系列的可供重用的算法或行为。继承有助于析取出这些算法中的公共功能 (3)简化了单元测 阅读全文
posted @ 2011-05-17 12:26 红脸书生 阅读(841) 评论(0) 推荐(0) 编辑
摘要: 1、意图定义对象间的一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生改变时,会通知所有观察者对象,使它们能够自动更新自己。2、核心思想 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,使他们能够自动更新自己。使用动机: 将一个系统分割成一系列相互协作的类有一个很不好的副作用,那就是需要维护相关对象间的一致性。我们不希望为了维持一致性而使各类紧密耦合,这样会给维护、扩展和重用都带来不便。本模式适用情况:(1)当一个对象的改变需要同时改变其他对象的时候,而且它不知道具体有多少对象 阅读全文
posted @ 2011-05-17 11:39 红脸书生 阅读(1259) 评论(0) 推荐(0) 编辑
摘要: 1、当涉及到“维护”时,为了“复用”目的而使用继承,并不是最好的方法。 2、利用继承来提供对象的行为,会导致以下缺点: 1)代码在多个子类中重复; 2)运行时的行为不容易改变; 3)很难知道所有子类的全部行为; 4)改变父类会牵一发而动全身,造成其他子类不想要的改变; 3、使用接口(JAVA)或虚基类加多重继承(C++)方法,则会需要对需要维护的代码中的每个子类都分别考虑其特有方法的继承来源。 4... 阅读全文
posted @ 2011-05-17 09:38 红脸书生 阅读(650) 评论(0) 推荐(0) 编辑
摘要: SQL 基础一、SQL简介 现在SQL是基于SQL-86标准逐步修改出来的二、MySQL使用入门1、SQL分类 SQL语句主要分为3类:(1)DDL:数据定义语句,用于定义数据库对象,例如:create、drop、alter(2)DML:数据操纵语句,用于添加、删除、更新和查询数据库记录,例如:insert(3)DCL:数据控制语句,用于控制不同数据段的访问权限和级别,例如:grant、revoke。2、DDL语句 即是对数据库内部的对象进行创建、删除、修改的操作语句。 主要由DBA使用,开发人员较少使用。(1) 创建数据库创建db语句:create database dbname;查看已有d 阅读全文
posted @ 2010-12-08 16:30 红脸书生 阅读(1546) 评论(0) 推荐(0) 编辑
摘要: 1、意图 享元模式:运用共享技术有效地支持大量细粒度的对象 2、核心思想 享元模式以共享的方式高效的支持大量的细粒度对象。享元模式能做到共享的关键是区分内蕴状态和外蕴状态。 内蕴状态存储在享元内部,不会随环境的改变而有所不同。外蕴状态是随环境的改变而改变的。外蕴状态不能影响内蕴状态,它们是相互独立的。 将可以共享的状态和不可以共享的状态从常规类中区分开来,将不可以共享的状态从类里剔除出去。... 阅读全文
posted @ 2010-06-25 17:13 红脸书生 阅读(493) 评论(0) 推荐(0) 编辑
摘要: 1、意图 中介者模式:用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互 2、核心思想 包装了一系列对象相互作用的方式,使得这些对象不必相互明显作用。从而使他们可以松散耦合。当某些对象之间的作用发生改变时,不会立即影响其他的一些对象之间的作用。保证这些作用可以彼此独立的变化。调停者模式将多对多的相互作用转化为一对多的相互作... 阅读全文
posted @ 2010-06-25 16:03 红脸书生 阅读(503) 评论(0) 推荐(0) 编辑
摘要: 1、意图 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系,将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。 2、核心思想 在责任链模式中,很多对象由每一个对象对其下家的引用而接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。客户并不知道链上具体的哪一个对象最终处理了这个请求,系统可以在不影响客户端的情况下,动态的重新组织链和... 阅读全文
posted @ 2010-06-24 18:04 红脸书生 阅读(541) 评论(0) 推荐(0) 编辑
摘要: 有时候需要把一组代码编译成一个库,这个库在很多项目中都要用到,例如libc就是这样一个库,我们在不同的程序中都会用到libc中的库函数(例如printf),也会用到libc中的变量(例如以后要讲到的environ变量)。本节介绍怎么创建这样一个库。 我们继续用stack.c的例子。为了便于理解,我们把stack.c拆成四个程序文件(虽然实际上没太大必要),把main.c改得简单一些,头文件stac... 阅读全文
posted @ 2010-06-24 11:06 红脸书生 阅读(1133) 评论(0) 推荐(0) 编辑
摘要: 4.1. 编译、链接、运行 请点评 组成共享库的目标文件和一般的目标文件有所不同,在编译时要加-fPIC选项,例如:-f后面跟一些编译选项,PIC是其中一种,表示生成位置无关代码(Position Independent Code)。那么用-fPIC生成的目标文件和一般的目标文件有什么不同呢?下面分析这个问题。我们知道一般的目标文件称为Relocatable,在链接时可以把目标文件中各段的地址做重... 阅读全文
posted @ 2010-06-24 11:05 红脸书生 阅读(2262) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 16 下一页