设计模式
文章平均质量分 58
简单介绍一些设计模式的具体使用。一般不包含源码相关,在前人的基础加上自己的理解书写而成。
杜莱
Lifetime Learner
展开
-
设计模式之单例模式
前言 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。 单例模式分为懒汉式和饿汉式,具体参考菜鸟教程 注意: 1、单例类只能有一个实例。 2、单例类必须自己创建自己的唯一实例。 3、单例类必须给所有其他对象提供这一实例。 具体实现 /**原创 2021-03-22 22:53:00 · 106 阅读 · 0 评论 -
设计模式之单例模式并发反射安全
目录一. 饿汉式二. 懒汉式三. 静态内部类单例模式四. 枚举类单例模式 一. 饿汉式 饿汉式的特点 初始化直接创建对象 如果创建大量不使用的对象就是资源的浪费 饿汉式不会出现线程问题 反射可能会出现非单例问题 如果不了解并发下懒汉式和饿汉式,直接饿汉式就可以了,不会出现并发问题 代码实现饿汉式 package com.concurrent.demo20Single; /** * 饿汉式 * 1. 直接创建对象 * 2. 如果创建大量不使用的对象就是资源的浪费 * 3. 饿汉式不会出现线程问题原创 2021-05-31 18:38:26 · 186 阅读 · 1 评论 -
设计模式之静态代理
1. 你要做的事情也就是接口 /** * @author lane * @date 2021年03月22日 下午9:46 */ public interface FindJob { /** * 找工作 * @author lane * @date 2021/3/22 下午9:46 */ public void find(); } 2. 你具体的实现也就是实现类 /** * @author lane * @date 2021年03月22日原创 2021-03-22 22:18:35 · 103 阅读 · 0 评论 -
设计模式之动态代理
前言 代理模式:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。代理模式分为静态代理、动态代理。 动态代理又分为jdk动态代理和cglib动态代理 :spring框架会自己选择执行哪种代理,除非你强制选择cglib动态代理.动态代理会在编译生成.class文件时候执行,会多一个代理类的文件。 jdk和cglib动态代理差异 : jdk动态代理是Java原生的不需要引入第三方jar jdk动态代理委托原创 2021-03-23 14:55:40 · 79 阅读 · 0 评论 -
设计模式之工厂模式
前言 工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。 意图:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。 主要解决:主要解决接口选择的问题。 何时使用:我们明确地计划不同条件下创建不同实例时。 如何解决:让其子类实现工厂接口,返回的也是一个抽象的产品原创 2021-03-22 23:43:09 · 148 阅读 · 0 评论 -
设计模式之抽象工厂模式
前言 抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。 意图:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 主要解决:主要解决接口选择的问题。 何时使用:系统的产品有多于一个的产品族,而系统只消费其中某一族的产品。 如何原创 2021-03-22 23:44:30 · 89 阅读 · 3 评论