当前位置: 首页 > news >正文

网站建设預算英语网站排名

网站建设預算,英语网站排名,wordpress 文章验证码,四川集团网站建设Spring涉及的设计模式以及实际使用场景(含代码) 1.工厂模式#xff08;Factory Pattern#xff09; 作用: 隐藏对象创建的细节#xff0c;通过工厂类统一管理对象的实例化。 场景#xff1a;Spring的BeanFactory和ApplicationContext是工厂模式的典型实现。 // 通过App…Spring涉及的设计模式以及实际使用场景(含代码) 1.工厂模式Factory Pattern 作用: 隐藏对象创建的细节通过工厂类统一管理对象的实例化。 场景Spring的BeanFactory和ApplicationContext是工厂模式的典型实现。 // 通过ApplicationContext获取Bean ApplicationContext context new ClassPathXmlApplicationContext(applicationContext.xml); UserService userService context.getBean(userService, UserService.class);// 自定义 FactoryBean public class MyFactoryBean implements FactoryBeanMyObject {Overridepublic MyObject getObject() throws Exception {return new MyObject(); // 复杂对象的创建逻辑}Overridepublic Class? getObjectType() {return MyObject.class;} }2.单例模式Singleton Pattern 作用:确保一个类只有一个实例并提供全局访问点。 场景:Spring默认的Bean的作用域为单例。 Service // 默认 singleton public class OrderService {// ... }// 测试单例 OrderService bean1 context.getBean(OrderService.class); OrderService bean2 context.getBean(OrderService.class); System.out.println(bean1 bean2); // 输出 true3.代理模式(Proxy Pattern) 作用通过代理对象控制对目标对象的访问用于增强功能(AOP) 场景Spring AOP通过动态代理实现日志事务等功能。 Aspect Component public class LogAspect {Before(execution(* com.example.service.*.*(..)))public void logBefore(JoinPoint joinPoint) {System.out.println(方法调用前: joinPoint.getSignature().getName());} }// 使用 Transactional 注解基于代理实现事务 Transactional public void transferMoney(Account from, Account to, double amount) {// 转账逻辑 }4.模版方法模式(Template Method Pattern) 作用:定义算法的骨架将某些步骤延迟到子类中实现 场景JdbcTemplate封装了JDBC的固定流程 Autowired private JdbcTemplate jdbcTemplate;public ListUser getUsers() {return jdbcTemplate.query(SELECT * FROM users,(rs, rowNum) - new User(rs.getString(name), rs.getInt(age))); }5.观察者模式(Observer Pattern) 作用:定义对象间的一对多依赖当一个对象状态变化时自动通知依赖它的对象。 场景Spring事件监听机制 // 自定义事件 public class OrderEvent extends ApplicationEvent {public OrderEvent(String orderId) {super(orderId);} }// 监听器 Component public class OrderEventListener implements ApplicationListenerOrderEvent {Overridepublic void onApplicationEvent(OrderEvent event) {System.out.println(处理订单事件: event.getSource());} }// 发布事件 Autowired private ApplicationEventPublisher publisher; public void createOrder() {publisher.publishEvent(new OrderEvent(ORDER_123)); }6.策略模式(Strategy Pattern) 作用:定义一系列算法使其可以互相替换独立于客户端发生变化 场景:Spring的ResourceLoader根据前缀选择资源加载策略 ResourceLoader loader new DefaultResourceLoader(); Resource fileResource loader.getResource(file:/tmp/test.txt); Resource classpathResource loader.getResource(classpath:application.yml);7.适配器模式(Adapter Pattern) 作用将一个接口转换成客户期待的接口 场景:Spring MVC 的 HandlerAdapter 适配不同 Controller。 // 模拟 SimpleControllerHandlerAdapter 的适配逻辑 public class SimpleControllerHandlerAdapter implements HandlerAdapter {Overridepublic boolean supports(Object handler) {return handler instanceof Controller;}Overridepublic ModelAndView handle(HttpServletRequest request, HttpServletResponse response, Object handler) {return ((Controller) handler).handleRequest(request, response);} }8.装饰器模式(Decorator Pattern 作用动态为对象添加额外职责 场景Spring对HttpServletRequest的包装 // 自定义装饰器 public class LoggingRequestWrapper extends HttpServletRequestWrapper {public LoggingRequestWrapper(HttpServletRequest request) {super(request);}Overridepublic String getParameter(String name) {System.out.println(获取参数: name);return super.getParameter(name);} }// 在 Filter 中使用 public class LogFilter implements Filter {Overridepublic void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) {chain.doFilter(new LoggingRequestWrapper((HttpServletRequest) request), response);} }9.责任链模式Chain of Responsibility Pattern 作用:将请求的发送者和接收者解耦通过链式处理请求。 场景:Spring Security 的过滤器链。 // 模拟过滤器链 public class FilterChainDemo {private ListFilter filters new ArrayList();public void addFilter(Filter filter) {filters.add(filter);}public void doFilter(HttpServletRequest request) {for (Filter filter : filters) {filter.execute(request);}} }// 使用 FilterChainDemo chain new FilterChainDemo(); chain.addFilter(new AuthFilter()); chain.addFilter(new LoggingFilter()); chain.doFilter(request);10.原型模式prototype Pattern 作用:通过复制现有对象来创建新对象避免重复初始化开销 场景:Spring 的 prototype 作用域 Bean。 Component Scope(prototype) public class PaymentService {// 每次获取都是新实例 }// 测试 PaymentService bean1 context.getBean(PaymentService.class); PaymentService bean2 context.getBean(PaymentService.class); System.out.println(bean1 bean2); // 输出 false11.建造者模式(Builder Pattern) 作用:分步骤构建复杂对象 场景:RestTemplateBuilder构建复杂对象 RestTemplate restTemplate new RestTemplateBuilder().rootUri(https://api.example.com).defaultHeader(Authorization, Bearer token).build();概括 解耦工厂模式、代理模式。扩展性策略模式、观察者模式。复用性模板方法模式、适配器模式。控制复杂度责任链模式、装饰器模式。
http://www.hkea.cn/news/14552916/

相关文章:

  • 电脑什么软件可以做动漫视频网站一下成都网站建设公司排名
  • flash 的网站wordpress添加php页面
  • jsp企业网站开发前期报告安阳市网站建设的公司
  • 济南建站网站网站浮动窗口怎么设置
  • 东莞建设银行网点查询南宁seo咨询
  • 培训网网站源码兰州起点网站建设公司
  • 中讯高科网站建设网址导航怎么更改
  • 优秀企业门户网站建设wordpress 美食主题
  • 如何做购物券网站wordpress文字摘要
  • 做网站程序的都不关注seo广州犀牛云网站建设
  • 静态网站建设参考文献网站建设-英九网络
  • 机械网站开发方案网站建设 用什么语言
  • 搜索引擎网站有哪些上海企业网站优化公司
  • 网站建设基本流程 dnssem竞价广告
  • 如何创建自己的网站平台idea网站开发
  • 宠物网站推广怎么做平面设计用到的软件有哪些
  • 便宜做外贸网站ie网站建设
  • 湖北什么是网站建设做外贸网站代理商
  • 做空调的网站做淘宝货源网站
  • 有哪些做外贸网站可拖拽网站
  • 创业中文网站模板商城网站设计定制
  • 网站用户互动可以做砍价活动的网站
  • 用oracle做网站数据库开发软件的应用
  • 小企网站建设解决方案响应式网站psd尺寸
  • 网站开发合同审核要点设计吧
  • 彩票网站开发风险鄂州网站建设设计
  • h5网站建设图标智能小程序下载
  • 互联网网站备案表wordpress主git题
  • php是用来做网站的吗最强商城系统
  • 360免费建站搜索引擎收录吗28网站制作