单例设计模式: 解决在一个类在内存中只存在一个对象;
想要保证对象唯一:
1 为了避免其他程序过多的建立该对象, 应先禁止其他程序建立该类对象;
2 还为了让其他程序能访问到该类对象, 只好在本类中, 自定义一个对象;
3 为了方便其他程序对自定义对象的访问, 可以对外提供一些访问方式;
这三部怎么用代码体现呢:
1 我们知道程序创建对象是通过构造函数, 我们只需将构造函数定义为private就可以了;
2 在类中创建一个本类对象;
3 提供一个方法获取该对象;
详细说明:
首先我们可以自己定义一个构造函数并且将其定义为private(此时在类外便无法调用构造函数生成新的对象了), 然后我们在类中调用这个private构造函数生成一个对象, 然后问题来了, 如何让程序中的变量引用这个对象呢? 我们可以写一个函数getinstance(),返回这个对象的地址给程序中的变量, 调用类中的函数有两种方法, 一种是通过对象名来调用, 另一种是通过类名来调用, 此时我们在类外没有对象, 所以只能通过类名来调用这个函数, 想要通过类名调用, 则这个函数并需声明为static类型的, 然后static类型的函数只能访问static成员, 所以我们在类中生成的那个对象也必须声明成static类型的, 并且这个对象不被类外的其他函数直接访问, 所以把他声明成private类型的, |