单例模式内容

单例模式( Singleton Pattern )是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提 供了一种创建对象的最佳方式。 这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访 问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。 单例模式是一种创建型设计模式,它确保一个类只有一个实例,并提供了一个全局访问点来访问该实例。就是不 管 new 多少次,创建的都是同一个对象。

1.单例类只能有⼀个实例。

2.单例类必须⾃⼰创建⾃⼰的唯⼀实例。

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

方法一,懒汉模式

public class LazySingleton {
private static LazySingleton INSTANCE;
private LazySingleton() {
}
public static LazySingleton getInstance() {
if (INSTANCE == null) {
INSTANCE = new LazySingleton();
}
return instance;
}
}

方法·二,饿汉模式

public class Singleton {
private static final Singleton INSTANCE = new Singleton();
private Singleton() {
}
public static Singleton getInstance() {
return INSTANCE;
}
}

 方法三,静态内部类

public class Singleton {
private static final Singleton INSTANCE = new Singleton();
private Singleton() {
}
public static Singleton getInstance() {
return INSTANCE;
}
}

方法四,枚举

public enum Singleton {
INSTANC();
}

枚举

在Java中,枚举( enum )是一种特殊的数据类型,用于定义一组命名的常量。枚举常用于表示一组相关的常量, 并且可以增加额外的属性和方法。

关键字 enum

枚举是一种特殊的类,可以像其他类一样拥有构造函数、成员变量和成员方法,成员类等,但不能被继承

枚举虽然有构造函数,但是不能实例化。

它的每⼀个实例都被声明在枚举当中(第⼀⾏)。多个实例之间使⽤ , 隔开。 ; 表⽰实例声明结束

 所有使⽤ enum 声明的都是枚举类,枚举类都是 java.lang.Enum 类的⼦类。枚举对象可以调⽤从 java.lang.Enum 类继承的⽅法:

 ordinal() 枚举实例声明的索引值

public class Greetings2 {
    enum Day{
        MONDAY,
        Tuesday,
        WEDNESDAY,
        THURSDAY,
        FRIDAY,
        SATURDAY,
        SUNDAY;

        public static void main(String[] args) {
            System.out.println(Day.Tuesday.ordinal());// 1
        }

    }

static values() 获取所有枚举常量的数组

public class Greetings2 {
    enum Day{
        MONDAY,
        Tuesday,
        WEDNESDAY,
        THURSDAY,
        FRIDAY,
        SATURDAY,
        SUNDAY;

        public static void main(String[] args) {
            Day []days=Day.values();
            for (Day day:days
                 ) {
                System.out.println(day);/*MONDAY
        Tuesday
        WEDNESDAY
        THURSDAY
        FRIDAY
        SATURDAY
        SUNDAY*/

            }
        }

    }

}

static valueOf(String name) 通过枚举常量的名称(字符串)来获取对应的枚举实例

public class Greetings2 {
    enum Day{
        MONDAY,
        Tuesday,
        WEDNESDAY,
        THURSDAY,
        FRIDAY,
        SATURDAY,
        SUNDAY;

        public static void main(String[] args) {
            System.out.println(Day.valueOf("FRIDAY"));//FRIDAY
        }

    }

创建一个枚举类型,表示不同类型的食物(例如:水果、蔬菜、肉类等),并为每个食物类型添加一个关联的 值,表示其卡路里含量。编写一个函数,接受一个食物枚举值,并返回该食物的卡路里含量。

 什么是设计模式

设计模式是针对软件开发中经常遇到的一些设计问题,根据基本的设计原则,总结出来的一套实用的解决方案或 者设计思路。

设计模式是非常偏实际应用的,相比设计原则更加具体、可执行。

因此,在了解设计模式之前,就需要了解一些基本的设计原则。这些原则才是指导我们写出好代码的关键。

那么什么是好代码呢?

好代码的标准其实很难描述,我们试着归纳一些好代码的特征,比如下面这些: 可维护、可扩展、可读、可测、可复用、简洁。

为了达到这些标准,就需要现有一些基本的设计原则。

经典的设计模式有 23 种。随着编程语言的演进,一些设计模式也随之过时,甚至成了反模式,一些则被内置在编 程语言中,另外还有一些新的模式诞生

创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式

结构型模式,共七种:适配器模式、装饰者模式、代理模式、门面模式、桥接模式、组合模式、享元模式。

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值