深入浅出23种设计模式

学习设计模式之前,我们要知道为什么需要设计模式?想想你在初中、高中时是怎么做数学题的?每遇到一个难题,你不需要重头开始思考解决方法,而是有一定的解题"套路"。设计模式就像是解题的"套路",一个好的"套路"应该适用于大多数题目,设计模式也是如此,一个好的设计模式不仅可以解决目前的问题,还可以很好地应对将来的变化。对于Java而言,只有运用好设计模式才能迈进J2EE的门槛。用一句话概括:设计模式就是为了提高代码的复用性,降低程序的耦合。

A. 创建模式

1. 单例模式(Singleton)

单例模式的目的是保证一个类只有一个实例,并且提供一个接口使用该实例。

最佳实践:建立目录;建立数据库连接。

一般单例模式通常有两种形式:饿汉式、懒汉式。

java 复制代码
//饿汉式,在类的加载阶段就会创建该类的实例对象
public class girlFriend {
    private String name;
    private girlFriend(String name){
        this.name = name;
    }
    private static girlFriend gf = new girlFriend("gf");
    public static girlFriend getInstance(){
        return gf;
    }
}
java 复制代码
//懒汉式,在类的初始化阶段创建该类的实例对象
public class girlFriend {
    private String name;
    private girlFriend(String name) {
        this.name = name;
    }
    private static girlFriend gf = null;
    public static synchronized girlFriend getInstance() {
        if(gf == null){
            gf = new girlFriend("gf");
        }
        return gf;
    }
}

懒汉式和饿汉式的区别:

  1. 创建对象时机不同。
  2. 懒汉式是线程不安全的,需要加锁;饿汉式是线程安全的。
2. 工厂模式(Factory)

B. 结构模式

C. 行为模式

相关推荐
漂洋过海的鱼儿7 小时前
设计模式——EIT构型(三)
java·网络·设计模式
老蒋每日coding15 小时前
AI Agent 设计模式系列(十八)—— 安全模式
人工智能·安全·设计模式
老蒋每日coding17 小时前
AI Agent 设计模式系列(十六)—— 资源感知优化设计模式
人工智能·设计模式·langchain
老蒋每日coding17 小时前
AI Agent 设计模式系列(十七)—— 推理设计模式
人工智能·设计模式
冷崖17 小时前
桥模式-结构型
c++·设计模式
连山齐名17 小时前
设计模式之一——堵塞队列
设计模式
会员果汁17 小时前
19.设计模式-命令模式
设计模式·命令模式
茶本无香17 小时前
设计模式之六—组合模式:构建树形结构的艺术
java·设计模式·组合模式
橘色的喵18 小时前
嵌入式 C++ 高性能流式架构的设计
数码相机·设计模式
会员果汁18 小时前
20.设计模式-职责链模式
设计模式