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

重庆建站公司费用手机网站 教程

重庆建站公司费用,手机网站 教程,WordPress排版美化,东莞注册有限公司流程及费用一、设计模式应用 1. 创建型模式 1.1 工厂方法模式(Factory Method) 应用场景:Bean的创建与管理。实现方式: BeanFactory:通过 getBean() 方法动态创建对象,根据配置或注解决定实例化哪个类。Applicatio…

在这里插入图片描述

一、设计模式应用

1. 创建型模式

1.1 工厂方法模式(Factory Method)

  • 应用场景:Bean的创建与管理。
  • 实现方式
    • BeanFactory:通过 getBean() 方法动态创建对象,根据配置或注解决定实例化哪个类。
    • ApplicationContext:继承自 BeanFactory,提供更高级的工厂功能(如国际化、事件发布)。
  • 示例
    ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
    MyService service = context.getBean(MyService.class);
    

1.2 单例模式(Singleton)

  • 应用场景:默认Bean作用域,确保全局唯一实例。
  • 实现方式
    • 通过 @Scope(ConfigurableBeanFactory.SCOPE_SINGLETON) 或 XML配置 <bean scope="singleton">
    • 与GOF单例的区别:Spring通过容器管理单例,而非类自身控制(如静态实例)。
  • 示例
    @Bean
    @Scope("singleton")
    public DataSource dataSource() {return new HikariDataSource();
    }
    

2. 结构型模式

2.1 代理模式(Proxy)

  • 应用场景:AOP实现方法增强(日志、事务等)。
  • 实现方式
    • JDK动态代理:基于接口代理(如 JdkDynamicAopProxy)。
    • CGLib字节码生成:基于类继承代理(无接口时使用)。
  • 示例
    @Aspect
    public class LogAspect {@Before("execution(* com.xiaolingting.service.*.*(..))")public void logBefore(JoinPoint joinPoint) {System.out.println("Method called: " + joinPoint.getSignature());}
    }
    

2.2 适配器模式(Adapter)

  • 应用场景:将不同类型的Advice(如 MethodBeforeAdvice)适配为统一的 MethodInterceptor
  • 实现方式
    • AdvisorAdapter:将 Advice 适配为拦截器链中的 MethodInterceptor
  • 示例
    public class MethodBeforeAdviceAdapter implements AdvisorAdapter {public boolean supportsAdvice(Advice advice) {return advice instanceof MethodBeforeAdvice;}public MethodInterceptor getInterceptor(Advisor advisor) {return new MethodBeforeAdviceInterceptor((MethodBeforeAdvice) advisor.getAdvice());}
    }
    

2.3 装饰器模式(Decorator)

  • 应用场景:动态增强对象功能(如Session管理、请求包装)。
  • 实现方式
    • BeanWrapper:包装Bean实例,提供属性访问和类型转换。
    • SessionRepositoryRequestWrapper:增强HttpServletRequest的功能(同步分布式Session)。
  • 示例
    public class EnhancedRequest extends HttpServletRequestWrapper {public EnhancedRequest(HttpServletRequest request) {super(request);}@Overridepublic String getParameter(String name) {// 对参数进行额外处理return super.getParameter(name).toUpperCase();}
    }
    

3. 行为型模式

3.1 模板方法模式(Template Method)

  • 应用场景:封装算法骨架(如数据库操作、事务管理)。
  • 实现方式
    • JdbcTemplate:定义 execute() 方法骨架,子类实现具体步骤(如连接获取、异常处理)。
  • 示例
    public class UserDao extends JdbcDaoSupport {public List<User> findAll() {return getJdbcTemplate().query("SELECT * FROM users", (rs, rowNum) -> {User user = new User();user.setId(rs.getLong("id"));user.setName(rs.getString("name"));return user;});}
    }
    

3.2 观察者模式(Observer)

  • 应用场景:事件驱动机制(如应用启动事件、自定义业务事件)。
  • 实现方式
    • ApplicationEventApplicationListener:定义事件发布与监听。
  • 示例
    // 自定义事件
    public class OrderCreatedEvent extends ApplicationEvent {public OrderCreatedEvent(Order order) {super(order);}
    }// 事件监听
    @Component
    public class OrderEventListener implements ApplicationListener<OrderCreatedEvent> {@Overridepublic void onApplicationEvent(OrderCreatedEvent event) {System.out.println("订单已创建:" + event.getSource());}
    }
    

3.3 策略模式(Strategy)

  • 应用场景:根据不同条件选择算法(如Bean实例化策略)。
  • 实现方式
    • InstantiationStrategy:定义实例化Bean的不同策略(反射、CGLib等)。
  • 示例
    public class CglibSubclassingInstantiationStrategy extends SimpleInstantiationStrategy {@Overridepublic Object instantiate(RootBeanDefinition bd, String beanName, BeanFactory owner) {// 使用CGLib生成子类代理return Enhancer.create(bd.getBeanClass(), new BeanMethodInterceptor());}
    }
    

3.4 责任链模式(Chain of Responsibility)

  • 应用场景:AOP拦截器链、MVC请求处理链。
  • 实现方式
    • MethodInterceptor:多个拦截器按顺序执行,每个拦截器决定是否传递到下一环节。
  • 示例
    public class TransactionInterceptor implements MethodInterceptor {public Object invoke(MethodInvocation invocation) throws Throwable {Connection conn = getConnection();try {conn.setAutoCommit(false);Object result = invocation.proceed(); // 传递到下一个拦截器conn.commit();return result;} catch (Exception e) {conn.rollback();throw e;}}
    }
    

二、 总结对比

设计模式Spring中的实现核心作用
工厂方法BeanFactory, ApplicationContext解耦对象创建与使用
单例Bean作用域配置资源复用与状态共享
代理AOP动态代理无侵入式功能增强
适配器AdvisorAdapter统一不同接口的调用方式
模板方法JdbcTemplate封装通用流程,扩展细节
观察者ApplicationEvent/Listener松耦合的事件驱动机制
策略InstantiationStrategy动态切换算法实现

结论:Spring框架通过 灵活组合GOF设计模式,实现了高扩展性、低耦合的企业级开发框架。理解这些模式的应用场景,有助于掌握Spring的设计精髓,并在实际开发中借鉴其思想。


文章转载自:

http://qy6QAhs8.tLfyb.cn
http://0iqoEWC3.tLfyb.cn
http://HbjyXy15.tLfyb.cn
http://eimLeqgT.tLfyb.cn
http://SIiYJv6B.tLfyb.cn
http://LUAif65a.tLfyb.cn
http://DM4iuFVs.tLfyb.cn
http://0MLXNT2W.tLfyb.cn
http://hlFk4nmF.tLfyb.cn
http://sGdDTzMu.tLfyb.cn
http://0SMES7BN.tLfyb.cn
http://W6KnHs2r.tLfyb.cn
http://R4EJ8rOv.tLfyb.cn
http://oTQoRW3H.tLfyb.cn
http://k0od4uEp.tLfyb.cn
http://86s8tzP5.tLfyb.cn
http://V3nlm3a3.tLfyb.cn
http://Ph9u760v.tLfyb.cn
http://TKfV9nfE.tLfyb.cn
http://D7OdRVbZ.tLfyb.cn
http://6finghwl.tLfyb.cn
http://lc5DWKJ8.tLfyb.cn
http://5GLXyecf.tLfyb.cn
http://AyR9gyRw.tLfyb.cn
http://RJNFgeYH.tLfyb.cn
http://17HyUnhG.tLfyb.cn
http://oBF7FHyg.tLfyb.cn
http://sdjQhKEo.tLfyb.cn
http://HYFrq3Vt.tLfyb.cn
http://WcfGbA7d.tLfyb.cn
http://www.dtcms.com/wzjs/741460.html

相关文章:

  • 云南凡科建站哪家好wordpress使用说明
  • 网站建设都有哪些方面iis7 网站无法显示该页面
  • 南通市建设工程网站大型门户网站建设一般多少钱
  • 湖南网站建设熊掌号公司管理培训课程
  • 响应式建设网站公司请外包做的网站怎么维护
  • 广州做网站价位wordpress 发卡
  • 浙江省建设厅官方网站沧州好的做网站的公司
  • 郑州网站制作天强科技cpanel搭建wordpress
  • 发稿平台兰州官网seo诊断
  • 网站404页面优化杭州 洛阳网站建设公司 网络服务
  • 重庆邮电大学官网网站中国高铁哪家公司建设
  • 怎么做网站教程html文本文档如何制作个人网页最简单的方法
  • 百度多久收录一次网站wordpress页面静态化
  • 北京商城网站建设费用天津装修公司排名
  • 安徽网站建设制作替人做非法网站
  • 现在用什么做网站金华网站开发建设
  • 低价高端网站设计益阳网络推广
  • 宝塔面板做网站界面好看的网站
  • 百度推广怎么做的网站吗郑州网站建设最好
  • 网站推广人员怎么算业绩网站快照怎么做
  • 关于网站开发费用的入账ICP备案和实际网站不是一个名字
  • 网站移动端就是app吗南通seo网站诊断
  • 广告喷绘机器多少钱一台seo营销推广全程实例
  • 做贸易要看什么网站广西茶叶网站建设
  • 西安网络营销学习网站适合女人小成本开店
  • 广州做网站企业辽阳专业网站建设品牌
  • dede企业网站模板电子商务网页设计论文
  • 作弊网站小程序推广任务
  • 服务类网站建设服务公司深圳装修公司排名前十口碑
  • 找工作哪个网站好2022想做电商怎么注册