设计模式

来源:互联网 发布: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;}

}

想了很久终于是想明白一些,记录之。



0 0
原创粉丝点击