单例模式
单例模式就是:当前的类只能被实例一次。通过单例模式我们系统的一个类只能被实例一次,从而对类的实例进行控制,进而达到节约系统资源的效果。
实现单列模式的要素
1、私有化构造函数;
2、私有化克隆函数;
3、设置一个静态方法,对类进行实例;
4、设置一个静态属性,保存当前类是否被实例过,如果没有就实例,有就直接用;
代码实现:
单例模式的适用场景:
比如我们的windows弹窗,如果不对他进行控制,那么页面全是弹窗。我们经常看到的弹窗,一样的话他只弹一次,这里就用了单例模式。
单例模式的缺点:
就是不适用变化的对对象,适用于不变的对象;
工厂模式
工厂模式就是根据不同的条件来生成不同的对象,工厂模式其实就是一个生产类,你给他什么他就给你生成什么,和我们实际的工厂是一样的。
代码实现:
工厂模式详解:
工厂模式其实是一个解耦的过程,他把类的实例和创建分开。比如现在A类调用B类的方法,只需要调用B类的方法,不用再去实例B类。工厂模式还可以减少代码的重复,比如现在B类的代码很复杂,并且在很多地方用到,我们可以将B类的代码拿到工厂里去维护,以后要修改,直接在工厂里修改,统一使用。还有一种情况,就是我们之前调用B类全部改成B类的子类,我们只需要将实例对象进行修改即可;
最好的列子就是我们看到框架里的数据库访问,我们只配置数据的基本信息,不用管数据库对象是怎么实例的。比如访问Mysql,我们只配置Mysql的信息,就可以访问。访问Oracle,也只是配置信息;