单例模式是一种常用的软件设计模式,其定义是单例对象的类只能允许一个实例存在。
许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。比如在某个服务器程序中,该服务器的配置信息存放在一个文件中,这些配置数据由一个单例对象统一读取,然后服务进程中的其他对象再通过这个单例对象获取这些配置信息。这种方式简化了在复杂环境下的配置管理。
饿汉式单例:先实例化对象,构造一个公共的实例化对象方法供其他类使用,可能会造成资源浪费
懒汉式单例
在需要实例化的时候,再把这个类进行new实例化,不浪费资源,保持单例
工厂模式
实现开闭原则:对扩展开放,对修改关闭。
老方法:直接new一个类对象的话,要获得这个类里面的参数,还得一个个去拿
工厂模式:不自己去new对象,使用工厂提供的实例化对象方法去获得对象,将调用者和实现类分离
极大增加了可扩展性,减少了修改代码的量
简单工厂:自己不new,去车工厂获得实例,但是简单工厂模式要扩展新的车时,需要改动车工厂的代码,违背开闭原则,修改起来很麻烦
工厂方法 :消费者要买车,不要去自己new一个车,只需要去对应的车工厂获得一个车的实例;完美实现开闭原则;而且在增加新的车类型的时候,不必改变原有的车和车的工厂,只需直接增加一个车和车 工厂分别去实现车接口和工厂接口
抽象工厂:就是工厂的工厂