wly603

2012年4月15日

设计模式---观察者模式

摘要: 一、观察者模式(Observer) 定义了一种一对多的依赖关系,当一个对象的状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。二、四个角色 抽象通知者:Subject(抽象类或接口) 具体通知者:ConcreteSubject类,里面定义一个集合(如List),保存所有的观察者对象 抽象观察者:Observer(抽象类或接口) 具体观察者:ConcreteObserver类三、程序示例抽象通知者//抽象通知者://5个接口方法:增加观察者、移除观察者、设置状态、获取状态、通知public interface Subject { void attach(Observe... 阅读全文

posted @ 2012-04-15 14:08 wly603 阅读(184) 评论(0) 推荐(0) 编辑

2012年4月14日

设计模式---装饰模式

摘要: 参考:http://blog.csdn.net/surprisesdu/article/details/605965 http://www.iteye.com/topic/121149一、装饰模式(Decorator) 动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更加灵活,它是继承的一种替代方案。 与继承的对比: 都能实现功能的扩展,而装饰模式使用的是组合,避免了使用过多继承造成系统的复杂性增加。二、四个角色 抽象接口:给客户端提供功能接口 具体类:实现抽象接口,具体的原始功能类 装饰角色类:实现抽象接口,持有具体类的对象 具体的装饰... 阅读全文

posted @ 2012-04-14 13:07 wly603 阅读(123) 评论(0) 推荐(0) 编辑

2012年4月12日

设计模式---适配器模式

摘要: 一、适配器模式 产生的背景: 对于客户的某个需求,有时,现有的类可以提供客户类的功能需要,但是它所提供的接口不一定是客户类所期望的 解决办法: 这时,应将现有的接口需要转化为客户类期望的接口,这样保证了对现有类的重用。如果不进行这样的转化,客户类就不能利用现有类所提供的功能。 适配器模式: 适配器模式建议定义一个包装类(适配器Adapter),包装有不兼容接口的对象(适配者Adaptee)。适配器提供客户类需要的接口,适配器接口的实现是把客户类的请求转化为对适配者的相应接口的调用。二、主要角色 Target:与客户端使用有关的接口 Adaptee:一个已经存在的类,它可... 阅读全文

posted @ 2012-04-12 14:10 wly603 阅读(187) 评论(0) 推荐(0) 编辑

2012年4月11日

设计模式----单例模式

摘要: 一、单例模式(SingleTon) 保证一个类只有一个实例,并提供一个访问它的全局方法二、程序示例单例类//单例模式package com;public class Singleton{ private static Singleton instance = null; //私有化的构造方法,不允许外部通过 new 来产生实例 private Singleton() { } public static Singleton getInstance() { if (instance == null) ... 阅读全文

posted @ 2012-04-11 19:21 wly603 阅读(170) 评论(0) 推荐(0) 编辑

设计模式-----抽象工厂模式

摘要: 参考:http://blog.csdn.net/ipqxiang/article/details/1955677 程杰《大话设计模式》清华大学出版社一、抽象工厂模式 提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。二、四个重要角色(类) 抽象工厂、具体工厂、抽象产品、具体产品三、程序示例抽象工厂接口//抽象工厂模式package com;//抽象工厂接口:包括2个product: IUser IDepartmentpublic interface IFactory { IUser createUser(); IDepartment createDepartme... 阅读全文

posted @ 2012-04-11 19:14 wly603 阅读(255) 评论(0) 推荐(0) 编辑

ubuntu下eclipse输入不流畅

摘要: 环境:ubuntu8.04.4 eclipse-jee-indigo-SR2下载使用了scim中文输入法1、问题描述 在eclipse中编程时,出现打一个字符串后,就不能再输入了。当点击保存工程后,又能继续输入。2、解决办法: a、修改scim配置 sudo gedit /etc/X11/xinit/xinput.d/scim 将xim修改为scim,即为GTK_IM_MODULE=scim b、再次设置系统默认的输入法为scim sudo update-alternatives --install /etc/X11/xinit/xinput.d/all_ALL xinput-all_ALL. 阅读全文

posted @ 2012-04-11 14:45 wly603 阅读(260) 评论(0) 推荐(0) 编辑

c语言静态变量和静态函数

摘要: static C语言 C语言程序可以看成由一系列外部对象构成,这些外部对象可能是变量或函数。而内部变量是指定义在函数内部的函数参数及变量。外部变量定义在函数之外,因此可以在许多函数中使用。由于C语言不允许在一个函数中定义其它函数,因此函数本身只能是“外部的”。 由于C语言代码是以文件为单位来组织的,在一个源程序所有源文件中,一个外部变量或函数只能在某个文件中定义一次,而其它文件可以通过extern声明来访问它(定义外部变量或函数的源文件中也可以包含对该外部变量的extern声明)。 而static则可以限定变量或函数为静态存储。如果用static限定外部变量与函数,则可以将该对象的作用域限定为 阅读全文

posted @ 2012-04-11 11:50 wly603 阅读(21664) 评论(2) 推荐(0) 编辑

c++中记录程序运行时间的函数

摘要: 在C++的库函数中,我们可以使用clock()来计算程序的运行时间,主要使用一下三个函数类型及函数:1、clock_t:数据类型,其实,当你打开time.h就知道了,就是个long型,用来记录一段时间内的clocks数,即CPU的运行单元时间;2、clock():返回类型clock_t,返回的是从程序开始,到你调用clock()函数这段时间的clocks;3、CLOCKS_PER_SEC:它用来表示一秒钟会有多少个时钟计时单元,即: #define CLOCKS_PER_SEC ((clock_t)1000) 可以看到每过千分之一秒(1毫秒),调用clock()函数返回的值就加1。下面举个例子 阅读全文

posted @ 2012-04-11 11:49 wly603 阅读(3252) 评论(0) 推荐(0) 编辑

从STL中的list删除元素

摘要: 主要是注意删除末尾的元素时,需要注意测试代码#include <iostream>#include <list>#include <algorithm>using namespace std;int main(int argc, char* argv[]){ list<int> MyList; for (int i = 0; i < 10; i++) { MyList.push_back(i); } list<int>::iterator Itor; for ( Itor = MyList.begin(); Itor ... 阅读全文

posted @ 2012-04-11 10:45 wly603 阅读(238) 评论(0) 推荐(0) 编辑

从一道面试题看深拷贝、浅拷贝构造函数问题

摘要: 《程序员面试宝典》P99请看下面的程序,说说会出现什么问题?View Code #include <iostream>#include <cstdlib>#include <vector> using namespace std; class CDemo { public: CDemo():str(NULL){}; ~CDemo() { if(str) delete[] str; }; char* str; }; int main(int argc, char** argv) { C... 阅读全文

posted @ 2012-04-11 10:43 wly603 阅读(1209) 评论(0) 推荐(0) 编辑

导航