网站及推广,做电影网站步骤,广州企业网站建设,模板建站优缺点什么是设计模式
一个问题通常有种解法#xff0c;其中肯定有一种解法是最优的#xff0c;这个最优的解法被人总结出来了#xff0c;称之为设计模式。
设计模式有20多种#xff0c;对应20多种软件开发中会遇到的问题。 关于设计模式#xff0c;主要学什么#xff1f; 解…什么是设计模式
一个问题通常有种解法其中肯定有一种解法是最优的这个最优的解法被人总结出来了称之为设计模式。
设计模式有20多种对应20多种软件开发中会遇到的问题。 关于设计模式主要学什么 解决什么问题 怎么写 单例设计模式
单例模式是一种创建型设计模式它确保一个类只有一个实例并提供一个全局访问点来获取这个实例。在某些场景下我们只需要一个对象来协调系统中的各项操作例如配置管理、数据库连接池等单例模式就非常有用。 单例模式写法 饿汉式单例模式的特点
饿汉式单例模式是单例模式的一种实现方式其特点是在类加载时就创建了唯一的实例。这意味着无论是否需要使用该实例它都会在类加载时被创建因此被称为“饿汉式”。
代码实现分析 public class A {// 1. 私有化构造器确保单例类无法创建太多实例保证单例实现的可能性private A(){}// 2. 定义一个静态变量用于存储本类的唯一实例private static A a new A();// 3. 提供一个静态方法用于获取本类的唯一实例public static A getA(){return a;}
}私有化构造器private A() {}将构造器私有化这样外部类就无法通过 new 关键字来创建 A 类的实例保证了类的实例只能在类内部创建。静态变量存储唯一实例private static A a new A();在类加载时就创建了 A 类的实例并将其存储在静态变量 a 中。由于 a 是静态的所以它属于类而不是类的实例全局只有一份。静态方法获取唯一实例public static A getA() { return a; }提供一个静态方法 getA() 用于获取 A 类的唯一实例。外部类可以通过 A.getA() 来获取该实例。
public class Test {public static void main(String[] args) {// 目标掌握单例设计模式的实现方式A a1 A.getA();A a2 A.getA();System.out.println(a1 a2);System.out.println(a1);System.out.println(a2);}
}测试代码在 main 方法中通过 A.getA() 方法分别获取两个 A 类的实例 a1 和 a2然后比较它们的引用是否相等。由于饿汉式单例模式保证了类只有一个实例所以 a1 和 a2 的引用是相等的输出结果为 true。
小结
什么是设计模式设计模式主要学什么单例模式解决了什么问题 具体问题的最优解决方案。解快了什么问题怎么写确保某个类只能创建一个对象。 单例怎么写饿汉式单例的特点是什么 把类的构造器私有定义一个静态变量存储类的一个对象提供一个静态方法返回对象。在获取类的对象时对象已经创建好了。 单例有啥应用场景有啥好处 任务管理器对象、获取运行时对象。
懒汉式单例模式
懒汉式单例模式是单例模式的一种实现方式其特点是在第一次使用该实例时才进行创建而不是在类加载时就创建。这种方式被称为“懒汉式”因为它比较“懒”直到真正需要时才去创建实例。 代码实现分析 私有化构造器private B() {}将构造器私有化防止外部类通过 new 关键字创建 B 类的实例保证单例的实现。静态变量存储实例private static B b null;定义一个静态变量 b 用于存储 B 类的唯一实例初始值为 null表示还未创建实例。静态方法获取实例public static B getB()提供一个静态方法用于获取 B 类的唯一实例。在方法内部首先检查 b 是否为 null如果为 null 则创建一个新的 B 类实例并赋值给 b然后返回 b如果 b 不为 null则直接返回 b。
测试代码
在 main 方法中通过B.getB()方法分别获取两个 B 类的实例 b1 和 b2然后比较它们的引用是否相等。由于懒汉式单例模式保证了类只有一个实例所以 b1 和 b2 的引用是相等的输出结果为 true。
小结
懒汉单例模式的特点是什么 要用类的对象时才创建对象延迟加载对象 懒汉单例模式怎么写 把构造器私有。定义一个类变量用于存储对象。提供一个类方法保证返回的是同一个对象。