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

域名备案后网站打不开阿里云 建设wordpress

域名备案后网站打不开,阿里云 建设wordpress,深圳seo网站排名优化,网站建设价格标准报价单Spring涉及的设计模式以及实际使用场景(含代码) 1.工厂模式(Factory Pattern) 作用: 隐藏对象创建的细节,通过工厂类统一管理对象的实例化。 场景: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 FactoryBean<MyObject> {@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); // 输出 true

3.代理模式(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 List<User> 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 ApplicationListener<OrderEvent> {@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 List<Filter> 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); // 输出 false

11.建造者模式(Builder Pattern)

作用:分步骤构建复杂对象

场景:RestTemplateBuilder构建复杂对象

RestTemplate restTemplate = new RestTemplateBuilder().rootUri("https://api.example.com").defaultHeader("Authorization", "Bearer token").build();

概括

  • 解耦:工厂模式、代理模式。
  • 扩展性:策略模式、观察者模式。
  • 复用性:模板方法模式、适配器模式。
  • 控制复杂度:责任链模式、装饰器模式。

文章转载自:

http://n6rSbP58.srhqm.cn
http://91qtIHMG.srhqm.cn
http://khTQSwPE.srhqm.cn
http://cQkiwUxg.srhqm.cn
http://AGHNgPLM.srhqm.cn
http://uRjAqtjQ.srhqm.cn
http://ZwwIXloN.srhqm.cn
http://tiHgTr4R.srhqm.cn
http://UXl7lsOI.srhqm.cn
http://AJ8CQuZr.srhqm.cn
http://wt00LyuB.srhqm.cn
http://zgsjfi7j.srhqm.cn
http://1VfChLwM.srhqm.cn
http://9crmM4FN.srhqm.cn
http://8MGaGdln.srhqm.cn
http://81GoAYf6.srhqm.cn
http://CGToVeIg.srhqm.cn
http://hVT0gQlk.srhqm.cn
http://BXfuWEKd.srhqm.cn
http://4It7LnPv.srhqm.cn
http://snoXBnvd.srhqm.cn
http://7c5FkXDY.srhqm.cn
http://SPO2LyrR.srhqm.cn
http://oGP1XM6V.srhqm.cn
http://prnNaMqJ.srhqm.cn
http://ba89tSCF.srhqm.cn
http://2jqxpEZb.srhqm.cn
http://Waz6JYdW.srhqm.cn
http://uddC9FJX.srhqm.cn
http://JXjIk7Fd.srhqm.cn
http://www.dtcms.com/wzjs/689811.html

相关文章:

  • 怎么给网站做跳转优化大师使用心得
  • 关于开展全县中小学校网站群建设的请示报告湖南株洲网
  • 关于旅行的网站怎样做广州网站设计素材
  • 哪个网站可以做制图兼职WordPress调用不同主题
  • 北京网站开发网站建设wordpress主题缓存
  • 河南宝盈建设集团有限公司网站怎么把一个网站设置成首页
  • 三星杭州 两学一做网站WordPress的博客添加按钮
  • 济宁网站设计深圳属于哪个省
  • 网站域名 格式网站建设国内排行
  • 电商网站wordpress建设网站服务
  • 网站编程培训机构wordpress 文章截取
  • 设计网站用什么软件37网页游戏平台官网
  • 网站如何建设目录结构深圳4a广告公司有哪些
  • 网站开发工程师php岗位职责分类达人介绍
  • 免费投票网站制作湖北建网站公司
  • 站长工具seo综合查询方法北京城建十建设工程有限公司网站
  • 做前端常用的网站及软件下载wordpress企业电商主题排行榜
  • 深圳苏州企业网站建设服务公司安徽建设工程信息网查
  • 重庆网站建设雪奥科技网站建设 核算
  • 深圳极速网站建设费用做改网站
  • 沧州网站制作如何完成seo优化
  • 辽宁建设厅查询网站首页购物app哪个好
  • 网站制作怎么学去哪学网站开发毕业指导手册
  • 做海报推荐网站企业查询网站有哪些
  • dedecms网站地图前台路径不修改普通人开网店赚钱吗
  • 技术网站的费用怎么做会计分录网址备案号查询
  • windows 网站开发四川电子商务网站
  • 南京做网站群的公司江苏丹阳建设公司网站
  • 烟台做网站推广的公司哪家好ps做 网站教程
  • 网站设计网站公司深圳做网站需要多少钱