跳至主要內容
Design Patterns Overview

Design Patterns Overview

分类 模式
创建型模式 单例模式(Singleton Pattern)
工厂模式(Factory Pattern)
• 抽象工厂模式(Abstract Factory Pattern)
• 建造者模式(Builder Pattern)
• 原型模式(Prototype Pattern)
结构型模式 • 适配器模式(Adapter Pattern)
• 桥接模式(Bridge Pattern)
• 过滤器模式(Filter、Criteria Pattern)
• 组合模式(Composite Pattern)
• 装饰器模式(DecoratorPattern)
• 外观模式(Facade Pattern)
• 享元模式(Flyweight Pattern)
• 代理模式(Proxy Pattern)
行为型模式 • 责任链模式(Chain of Responsibility Pattern)
• 命令模式(Command Pattern)
•解释器模式(Interpreter Pattern)
• 迭代器模式(Iterator Pattern)
• 中介者模式(MediatorPattern)
• 备忘录模式(Memento Pattern)
• 观察者模式(Observer Pattern)
• 状态模式(State Pattern)
• 空对象模式(Null Object Pattern)
• 策略模式(Strategy Pattern)
• 模板模式(Template Pattern)
• 访问者模式(Visitor Pattern)

Section9lab...小于 1 分钟DesignPatternjava
Design Patterns Singleton

Design Patterns Singleton


一、创建型模式:

1、单例模式

静态常量饿汉式

优点:写起来简单不费脑子、线程安全

缺点:类装载就完成了实例化,可能浪费内存(不太重要,因为要用到的话早晚装载对象)

public class Test {
    public static void main(String[] args) {
        Singleton singleton1 = Singleton.getInstance();
        Singleton singleton2 = Singleton.getInstance();
        System.out.println(singleton1.hashCode() == singleton2.hashCode());
    }
}
class Singleton {
    // private构造方法保证外部无法实例化:
    private Singleton() {}

    // 静态字段引用唯一实例:
    private static final Singleton INSTANCE = new Singleton();

    // 通过静态方法返回实例:
    public static Singleton getInstance() {
        return INSTANCE;
    }

}

Section9lab...大约 1 分钟DesignPatternjava