饥人谷技术博客

设计模式:单例模式,工厂模式

2020-11-20  本文已影响0人  _Jun

什么是设计模式?

设计模式(Design Patterns)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。

设计模式分类:(3大类,23种)

创建型模式:单例模式、抽象工厂模式、原型模式、建造者模式、工厂模式。

结构型模式:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。

行为型模式:模板方法模式、命令模式、访问者模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略模式、责任链模式。

一,单例模式:


采取方法,使整个软件系统中,对某个类只存在一个对象实例。并且该类只提供一个取得其对象实例的方法(静态方法)。

实现的类型:

1)饿汉模式:

饿汉模式就是当类加载时就创建该类的实例,这是创建单例类最容易的方法但是有个一弊端是创建了该实例但是客户端程序可能不使用这个实例。

2)静态初始化:

静块初始化实现类似于饿汉模式初始化,但类的实例在静态代码块中创建并对异常进行处理。

3)懒加载:

懒加载就是当需要的时候再来创建该类的实例,而不是一开始就把实例创建好了。

4)线程安全的单例:

public class ThreadSafeSingleton {
    private static ThreadSafeSingleton instance = null;

    private ThreadSafeSingleton(){

    }

    //同步关键字synchronized
    public static synchronized ThreadSafeSingleton getInstance(){
        if(instance == null){
            instance = new ThreadSafeSingleton();
        }
        return  instance;
    }

}

5)枚举单例

这种方法简单,便捷。

public enum  EnumSingleton {
    INSTANCE;

    public static void doSomething(){
        //do something
    }
}

特点:

1)单例类只能有一个实例。

2)单例类必须自己创建自己的唯一实例。

3)单例类必须给所有其他对象提供这一实例。

二,工厂模式:


工厂模式包括:

1)简单工厂模式

又称为静态工厂方法模式,它属于类创建型模式。在简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。

2)工厂方法模式

工厂方法是针对每一种产品提供一个工厂类,通过不同的工厂实例来创建不同的产品实例。主要解决了简单工厂模式违背了“开放 - 关闭原则”的问题。

优点:

3)抽象工厂模式

抽象工厂模式允许使用抽象的接口来创建一组相关产品,而不需要知道或关心实际生产出的具体产品是什么,这样就可以从具体产品中被解耦。

优点:

设计模式六大原则:

上一篇 下一篇

猜你喜欢

热点阅读