设计模式
来源:互联网 发布:sql通配符的使用 编辑:程序博客网 时间:2024/05/16 03:57
面向对象分析系统的分析和设计实际上追求的就是两点,一个是高内聚(Cohesion),另一个是低耦合(Coupling)。设计模式体现的是一种思想,而思想则是指导行为的一切,理解和掌握了设计模式,并不是说记住这23中设计场景和解决策略,实际接受的是一种思想的熏陶和洗礼,等这种思想融入到你的思想之中的时候,你就会不自觉的使用这种思想去进行你的设计和开发,这才是最重要的。
不罗嗦,开始第一个设计模式。个人认为设计模式中最简单的模式莫过于Singleton,也是最容易用代码是实现的。公司在面试的时候,如果想在短时间内考察应聘者对于设计模式的理解,也多会设计这个模式。单键模式所设计的问题就是如何去创建一个只能够被创建一次的类。在这个时候很自然的,我们想到了在C++中,如果我们将一个定义一个静态变量来控制实例的个数是可以的。
如:
class Singleton{
public:
Singleton(){ if((NumOfInstance <1) cout << "Singleton..."<<endl;}
static NumOfInstance = 0;
};
定义这样第一个类,貌似看着是没有问题的,在NumOfInstance小于1 的时候,输出相应文字。但其实是已经进入了构造函数内,也就是调用了构造函数,这种想法是不对的。于是又思考了一下,总结应该将构造函数定义为是private,这样的话,实例就不能调用这样的构造函数,而只能通过类内部的成员函数来调用。如果我们将成员函数定义成static,这样的话,我们就可以通过类本身来调用,于是有了下面这段代码:
class Singleton2{
public:
static Singleton* Instance()
{ if(NumOfInstance == 0)
{
++NumOfInstance;
return (new siongleton2());
}
static NumOfInstance = 0;
private:
Singleton2(){ cout <<"Singleton2..."<<endl;}
}
想了很久终于是想明白一些,记录之。
- 设计模式
- 设计模式
- 设计模式
- 设计模式
- 设计模式
- 设计模式
- 设计模式~~~~~~~~~~
- 设计模式
- 设计模式
- 设计模式
- 设计模式
- 设计模式
- 设计模式
- 设计模式
- 设计模式
- 设计模式
- 设计模式
- 设计模式
- man exit _exit
- poj 3669 Meteor Shower(广度优先搜索)
- jsp 自定义标签 一 简单示例
- 黑马程序员-java_Properties_Runtime
- xp任务栏不显示任务 vbs脚本
- 设计模式
- 2014年中国互联网大会->随笔
- ZOJ-#3502 Hello, Gensokyo(找规律)
- Ios 程序打包,安装流程
- POJ 3386 Halloween Holidays(水题)
- windows 系统 电脑特别卡的原因
- uva 657 The die is cast(双重搜索)
- 使用Qt合并图片的算法
- C语言 数组初始化的三种常用方法({0}, memset, for循环赋值)以及原理