一、单例设计模式:
1、 确保类在内存中只有一个对象,类实例必须自动创建,且对外提供
2、 如何确保只有一个对象
a) 构造方法私有化
b) 在成员类中创建一个对象并赋给私有静态成员变量,(静态方法只能访问静态成员变量)
(私有是为了不让外界随意更改此变量)
c) 在成员类中写一个公共静态方法提供访问私有静态成员变量
(因为单例设计模式测试类中不能创建对象,只能访问静态方法)
3、 饿汉式:类一加载就创建对象(Runtime工具类)
Runtime工具类:每个java引用程序中都有一个Runtime实例,
使应用程序能够与其运行的环境相连接
此工具类中有一个方法:
public Process exec (String command),类似于cmd可以使用dos命令
懒汉式:用的时候才去创建对象(可能在加载时出现线程安全问题,所以需要加同步方法锁)
二、工厂模式:
1、 简单工厂模式
a) 也叫静态工厂方法模式,定义了一个具体的工厂类负责创建一些类的实例
b) 优点:客户端不需要负责对象的创建,明确了各个类的职责
c) 缺点:此静态工厂负责创建所有对象,如果有新的对象增加,或者某些对象的创建方式不同
就需要不断地修改工厂类,不利于后期维护
2、 工厂方法模式:
a) 工厂方法模式中抽象工厂类负责定义创建对象的接口,具体对象的创建工作由
继承抽象工厂的具体类实现。
b) 优点:客户端不需要再负责对象的创建,明确了各个类的职责,如果有新的对象增加,
只需要加一个具体的类和具体的工厂类即可,不影响已有的代码,后期维护容易,
增强了系统的扩展性。
c) 缺点:需要额外的编写代码,增加了工作量