软件设计模式–第二章 创建型模式– 单例模式

目录

  • 第二章 创建型模式
    • 1、创建型模式概述
    • 2、单例模式(Singleton)
      • (1)模式的定义与特点
      • (2)模式的结构与实现
      • (3)应用场景
      • (4)扩展

第二章 创建型模式

1、创建型模式概述

  • 主要特点
    对象的创建与使用分离”,这样可以降低系统的耦合度。

  • 创建型模式分为以下几种:
    ⑴单例(Singleton)模式 :某个类只能生成一个实例,该类提供了一个全 局访问点供外部获取该实例,其拓展是有限多例模式。
    ⑵ 原型(Prototype)模式:将一个对象作为原型,通过对其进行复制而克 隆出多个和原型类似的新实例。
    ⑶ 工厂方法(Factory Method)模式:定义一个用于创建产品的接口,由子 类决定生产什么产品。
    ⑷ 抽象工厂(Abstract Factory)模式:提供一个创建产品族的接口,其每 个子类可以生产一系列相关的产品。
    ⑸ 建造者(Builder)模式:将一个复杂对象分解成多个相对简单的部分, 然后根据不同需要分别创建它们,最后构建成该复杂对象。

2、单例模式(Singleton)

(1)模式的定义与特点

  1. 定义:指一个类只有一个实例,且该类能自行创建这个实例的一 种模式。例如,Windows中的任务管理器、回收站等

  2. 特点:
    1)单例类只有一个实例对象;
    2)该单例对象必须由单例 类自行创建;
    3)单例类对外提供一个访问该单例的全局访问点。

(2)模式的结构与实现

普通类的构造函数是公有的, 外部类可以通过“new 构造函数 ()”来生成多个实例。
但是如果将类的构造函数设为私有的, 外部类就无法调用它生成多个实例了。
这时该类自身必须定义一 个静态私有实例,并向外提供一 个静态的公有函数用于创建或获取该静态私有实例。

1、结构

  • 单例类:包含一个实例且能自行创建这个实例的类。
  • 访问者类:使用单例的类

2、实现

  • 懒汉式单例:该模式的特点是类加载时没有生成单例,只有当第一次调用getInstance方法时才去创建这个单例

结构图:

President类:

  • 饿汉式单例:该模式的特点是类一旦加载就创建一个单例,保证在调用getInstance方法之前单例已经存在了。

代码如下:

例:用饿汉式单 例模式模拟产生猪八戒对象。
结构图:

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览93643 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年3月20日
下一篇 2022年3月20日

相关推荐