美文网首页
Java设计模式——单例模式

Java设计模式——单例模式

作者: icyage | 来源:发表于2017-10-28 16:57 被阅读6次

Java设计模式

设计模式是被反复使用且被广泛验证的优秀的设计理念的总结,经过分类和归纳后,更容易被人们接受并使用在工程学中。


设计模式分类

范围 创建模式 结构模式 行为模式
工厂方法(Factory Method) 适配器(Adapter) 解释器(Interpreter)
(Template Method)
对象 抽象工厂(Abstract Factory) 适配器(Adapter) 责任链(Chain of Responsibility)
对象 生成器(Builder) 桥接(Bridge) 命令(Command)
对象 原型(Prototype) 组成(Composite) 迭代器(Iterator)
对象 单例(Singleton) 装饰器(Decorator) 中介者(Mediator)
对象 外观(Facade) 备忘录(Memento)
对象 享元(Flyweight) 观察者(Observer)
对象 代理(Proxy) 状态(State)
对象 策略(Strategy)
对象 访问者(Visitor)

设计模式原则

  1. 开闭原则(Open Close Principle)
    对扩展开放,对修改关闭
  2. 里氏替换原则(Liskov Substitution Principle)
    开闭原则的扩展
  3. 依赖倒置原则(Dependence Inversion Principle)
    对接口编程,依赖于抽象
  4. 接口隔离原则(Interface Segregation Principle)
    多接口实现,避免单一接口集中定义方法抽象
  5. 迪米特法则(Demeter Principle)
    最少知道原则
  6. 合成复用原则(Composite Reuse Principle)
    尽量使用组合,聚合等方式,替代继承

单例模式

这期介绍常用的单例模式

三要素

  1. 类只能有一个实例
  2. 必须由自身创建对象实例
  3. 必须由自身向调用方提供这个实例

单例模式是一种对象创建型模式。单例模式又名单件模式或单态模式。

java实现

解释

  1. 懒汉——懒加载方式,在使用的时候,如果不存在则创建
  2. 饿汉——饥饿家在方式,在未使用的时候,直接创建等待使用,始终线程安全
  3. 线程安全——单线程与多线程执行预期始终一致
  • 懒汉方式,线程不安全
  • 懒汉方式,线程安全
  • 懒汉方式,线程安全高级版

该方式锁定的是实例引用资源,而不是类对象,这样该类的其他静态方法就不会收到影响。


  • 饿汉方式
  • 饿汉,变种
  • 静态内部类
  • 枚举

总结

这里由很多单例的实现,线程安全的不安全的,懒汉模式,饿汉模式等组合。需要大家关注的是这里面所用到的Java特性。这里推荐静态内部类和枚举的方式来实现。

常见面试问题

  1. 使用过哪些设计模式
  2. 手写单例模式
  3. 怎么做到线程安全
  4. 如何更优雅的实现单例模式

感兴趣的朋友希望能留言交流,有好的建议可以提出来,大家一起进步多谢。

相关文章

  • JAVA设计模式 - 单例模式

    JAVA设计模式 - 单例模式 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一...

  • 单例模式

    JAVA设计模式之单例模式 十种常用的设计模式 概念: java中单例模式是一种常见的设计模式,单例模式的写法...

  • Java中单例模式你用的哪一种?

    一起讨论java中的单例模式。单例模式是java设计模式中算是最简单的设计模式了。 * java实现单例模式的写法...

  • JAVA设计模式之单例模式

    JAVA设计模式之单例模式

  • 设计模式

    Java 设计模式情景分析 ——单例模式 Java 设计模式情景分析——建造者模式 Java 设计模式情景分析——...

  • Java设计模式教程

    Java设计模式教程 Java工厂设计模式 Java抽象工厂模式 Java单例模式 Java建造者(Builder...

  • 设计模式——单例模式

    设计模式——单例模式 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一,这种类型...

  • 设计模式

    单例模式 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式...

  • 设计模式《一》单例模式

    单例模式 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属...

  • 设计模式之单例模式详解(附源代码)

    单例模式 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属...

网友评论

      本文标题:Java设计模式——单例模式

      本文链接:https://www.haomeiwen.com/subject/vogxpxtx.html