网站作业成品,珠海培训网站建设,网站开发 私活,中国保险公司排名前十名设计模式
是一种软件开发中的解决方案#xff0c;设计原则。目的是使代码具有扩展性#xff0c;可维护性#xff0c;可读性#xff0c;如#xff1a; 单例模式#xff08;Singleton Pattern#xff09; Spring IoC 容器默认会将 Bean 创建为单例#xff0c;保证一个类…
设计模式
是一种软件开发中的解决方案设计原则。目的是使代码具有扩展性可维护性可读性如 单例模式Singleton Pattern Spring IoC 容器默认会将 Bean 创建为单例保证一个类型的 Bean 在容器中只有一个实例。并提供一个全局的访问点来访问这个实例。单例模式的关键是控制类的实例化过程确保系统中只存在一个实例避免重复创建对象节省系统资源。 public class Singleton {// 在类加载时就创建唯一实例private static final Singleton instance new Singleton();// 私有构造函数防止外部实例化private Singleton() {}// 提供公共的访问方法public static Singleton getInstance() {return instance;}public void showMessage() {System.out.println(Hello, I am a Singleton!);}
}工厂模式Factory Pattern---一种创建模式 Spring 容器本身就是一个 Bean 工厂BeanFactory用于实例化和管理 Bean 对象。通过工厂模式开发者无需关心 Bean 的创建过程。简单工厂模式通过一个工厂类创建不同类型的对象通常使用一个静态方法 // 产品接口
public interface Vehicle {void drive();
}// 具体产品类 Car
public class Car implements Vehicle {Overridepublic void drive() {System.out.println(Driving a car!);}
}// 具体产品类 Bike
public class Bike implements Vehicle {Overridepublic void drive() {System.out.println(Riding a bike!);}
}// 工厂类根据参数创建不同的产品实例
public class VehicleFactory {public static Vehicle createVehicle(String type) {if (car.equalsIgnoreCase(type)) {return new Car();} else if (bike.equalsIgnoreCase(type)) {return new Bike();} else {throw new IllegalArgumentException(Unknown vehicle type);}}
}代理模式Proxy Pattern Spring AOP面向切面编程大量使用代理模式来实现方法拦截。例如事务管理、日志记录、权限控制等功能就是通过动态代理来实现的。 模板方法模式Template Method Pattern Spring 中的模板类如 JdbcTemplate、RestTemplate 等提供了模板方法模式用于简化数据库操作、HTTP 调用等。开发者只需关注逻辑的实现不必处理重复代码。要区别外观模式模板方法模式的目的是定义一个算法的骨架将一些步骤的实现延迟到子类中。模板方法模式通常包含一个模板方法它定义了算法的执行顺序而具体的步骤则由子类去实现。 装饰器模式Decorator Pattern Spring Boot 中的 Filter 链、HandlerInterceptor 等使用了装饰器模式来增强功能例如添加过滤条件或拦截请求。 观察者模式Observer Pattern Spring 的事件机制使用观察者模式。通过 ApplicationEvent 和 ApplicationListener可以在事件发布时通知所有监听器。它定义了对象间一种一对多的依赖关系使得当一个对象称为“被观察者”的状态发生变化时所有依赖于它的对象称为“观察者”都能够收到通知并自动更新。这个模式通常用于事件监听机制是发布-订阅模式的一种实现 责任链模式Chain of Responsibility Pattern Spring 的 Filter 和 Interceptor 机制使用了责任链模式将多个过滤器和拦截器串联起来按顺序处理请求和响应。 适配器模式Adapter Pattern Spring MVC 中的 HandlerAdapter 使用了适配器模式用于适配不同类型的请求处理器。比如可以支持 Controller 和 RestController也支持不同的返回类型。 外观模式Facade Pattern Spring 提供了简化的接口来访问复杂的子系统就说将复杂的系统用一个简单的外壳包装起来你只需要会用这个简单的外壳进行了比如 JdbcTemplate 简化了 JDBC 操作的复杂过程RestTemplate 简化了 HTTP 调用。通常外观类只提供一个简化的接口而不关心对象的具体行为。 原型模式Prototype Pattern Spring 容器中通过 Scope(prototype) 定义 Bean 为多例每次注入时都会生成新的实例。通过复制现有的对象来创建新的对象而不是通过构造函数来实例化新对象。适用于需要频繁创建新对象的场景。可通过实现cloneable接口实现。