1.设计模式是软件工作人员长期的实验总结出来的。
指导我们如何设计某个类与类之间的关系。
经典的设计模式有23个,每一个解决一类问题,可自行百度
在这我介绍一个
1.单例模式
某个类有个限定如果只能有一个对象,那么可以用该模式,比如开发板的显示屏类只有一块屏幕 所以lcd只允许创建一个对象
ostream类和istream类对应标准输入和输出文件,只有一份也只允许创建一个。
实现方法基本如下
1.普通构造函数私有化。
--》言外之意,唯一对象在类内创建
2.把拷贝构造函数删除。
--》防止唯一对象去初始化其他对象提示错误。
具体实现,两种流派/两种方式;
两个步骤相同时不同怎沫创建
饿汉式:事先创建好唯一的对象,要用的时候可以马上使用。
唯一对象用static修饰,在类内声明,每个类只有一个。
构造函数私有化在外面不能直接创建对象,创建的话会报错。
懒汉式:唯一对象要等到要用时再创建。
在静态成员函数中创建一个唯一对象,并且只有第一次创建才会创建
这种方式,并发执行的时候可能还是会创建
多个对象,所以要做pv操作
总结:
其实是通过一定的方法去将对象的数量限制在一个!
1.将构造函数私有化,类外没权限的不可以调用构造函数那就无法创建对象,
那你就别去用友元来创建对象了,既然要用这个就不要去打破他的规则。
2.将拷贝构造函数delete,这样就不可以用唯一的对象去通过拷贝构造函数
来创建新对象
3.移动构造为啥不要delete?
因为移动构造需要一个将亡的对象给一个对象进行初始化
但是你的对象创建出来就要一直使用一般不会被销毁,所以
不需要考虑移动构造函数。
两种方法将对象创建的条件给扼杀了。
然后就去想办法创建一个对象。
1.饿汉式:用static声明一个类的对象在外部定义的时候直接就初始化对象了
!因为它是类的成员变量所以可以访问私有的构造函数 接下来就可以通过类名
访问这个静态成员对象了。
2.懒汉式:在类中弄一个函数通过返回函数中静态对象的指针来进行操控,不需要
传参了减少了代码的复杂度。需要用但是要加限制因为没有限制的话那就可以通过
这个函数一直创建对象,与我们的单例模式冲突了。
这个做法因人而异。