您的位置:首页 > 汽车 > 新车 > 网页美工是做什么的_国内设计网站大全_千锋教育官网_怎样在浏览器上找网站

网页美工是做什么的_国内设计网站大全_千锋教育官网_怎样在浏览器上找网站

2025/4/26 22:57:47 来源:https://blog.csdn.net/qq_62729660/article/details/146598917  浏览:    关键词:网页美工是做什么的_国内设计网站大全_千锋教育官网_怎样在浏览器上找网站
网页美工是做什么的_国内设计网站大全_千锋教育官网_怎样在浏览器上找网站

设计模式详解

1. 单例模式:双重检查锁(volatile禁止指令重排序)

核心思想:确保一个类仅有一个实例,并提供全局访问点。
双重检查锁实现

public class Singleton {private static volatile Singleton instance; // volatile禁止指令重排序private Singleton() {}public static Singleton getInstance() {if (instance == null) { // 第一次检查:避免不必要的同步synchronized (Singleton.class) {if (instance == null) { // 第二次检查:确保实例未创建instance = new Singleton(); }}}return instance;}
}

关键点

  • 双重检查:减少同步代码块的使用,提升性能。
  • volatile作用:禁止JVM指令重排序,防止其他线程获取未初始化完成的实例(对象初始化分三步:分配内存→初始化对象→指向内存地址,若重排序可能导致中间状态暴露)。

2. 工厂模式:Spring BeanFactory

核心思想:将对象创建与使用解耦,由工厂统一管理实例化过程。
Spring BeanFactory

  • 功能:Spring IoC容器的核心接口,负责创建、配置和管理Bean。
  • 实现方式
    • 简单工厂:通过静态方法返回具体对象。
    • 工厂方法:定义接口,子类决定实例化哪个类。
  • Spring中的扩展
    • ApplicationContext继承BeanFactory,支持自动装配、事件发布等高级功能。
    • 通过XML配置或注解(如@Component@Bean)定义Bean的创建规则。

3. 代理模式:AOP动态代理

核心思想:通过代理对象控制对目标对象的访问,增强功能(如日志、事务)。
Spring AOP实现

  • JDK动态代理:基于接口,运行时生成代理类(要求目标类实现接口)。
  • CGLIB代理:基于继承,生成目标类的子类作为代理(适用于无接口的类)。
    示例
// 目标类
public class UserServiceImpl implements UserService {public void save() { /* 业务逻辑 */ }
}// 切面增强
@Aspect
public class LogAspect {@Before("execution(* save(..))")public void logBefore() { /* 记录日志 */ }
}

动态代理流程

  1. 切面定义增强逻辑(Advice)。
  2. 代理工厂在运行时生成代理对象。
  3. 调用代理方法时,按顺序执行增强逻辑和目标方法。

4. 观察者模式:Spring事件机制

核心思想:定义对象间的一对多依赖,当主题状态变化时,自动通知所有观察者。
Spring事件机制

  • 核心组件
    • 事件:继承ApplicationEvent(如ContextRefreshedEvent)。
    • 发布者:调用ApplicationContext.publishEvent()发布事件。
    • 监听者:实现ApplicationListener接口或使用@EventListener注解。
      示例
// 自定义事件
public class OrderEvent extends ApplicationEvent { /* 订单事件 */ }// 监听者
@Component
public class OrderListener {@EventListenerpublic void handleEvent(OrderEvent event) { /* 处理事件 */ }
}// 发布事件
applicationContext.publishEvent(new OrderEvent("订单创建"));

特点:支持同步/异步处理,通过@Async实现异步监听。


5. 其他常见设计模式
  • 模板方法模式Spring JdbcTemplate定义算法骨架,子类实现具体步骤。
  • 适配器模式:Spring MVC的HandlerAdapter适配不同处理器(如Controller、Servlet)。
  • 装饰器模式:Java I/O流(如BufferedReader包装FileReader)。

总结

设计模式是解决特定场景问题的经验总结,结合框架(如Spring)可显著提升代码复用性、扩展性和可维护性。理解模式的核心思想比死记实现更重要!

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com