您的位置:首页 > 娱乐 > 八卦 > 住建网官网_一网一平台是什么_今日国际新闻10条_关键词点击排名软件

住建网官网_一网一平台是什么_今日国际新闻10条_关键词点击排名软件

2025/2/27 20:16:47 来源:https://blog.csdn.net/qq_18244417/article/details/144898354  浏览:    关键词:住建网官网_一网一平台是什么_今日国际新闻10条_关键词点击排名软件
住建网官网_一网一平台是什么_今日国际新闻10条_关键词点击排名软件

接上一篇文章,现在继续讲一下Spring框架的设计模式应用

4. 观察者模式 (Observer Pattern)

描述:

  • 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。当主题对象发生变化时,它的所有依赖者(观察者)都会收到通知并自动更新。

Spring 中的应用:

  • 事件机制: Spring 提供了事件发布和监听机制,允许对象之间进行松耦合的通信。

  • ApplicationEventPublisher: 用于发布事件。

  • ApplicationListener: 用于监听事件。

示例:

// 定义一个事件
publicclass CustomEvent extends ApplicationEvent {private String message;public CustomEvent(Object source, String message) {super(source);this.message = message;}public String getMessage() {return message;}
}// 发布事件
@Service
publicclass EventPublisherService implements ApplicationEventPublisherAware {private ApplicationEventPublisher publisher;@Overridepublic void setApplicationEventPublisher(ApplicationEventPublisher applicationEventPublisher) {this.publisher = applicationEventPublisher;}public void publishCustomEvent(final String message) {System.out.println("Publishing custom event. ");CustomEvent customEvent = new CustomEvent(this, message);publisher.publishEvent(customEvent);}
}// 监听事件
@Component
publicclass CustomEventListener implements ApplicationListener<CustomEvent> {@Overridepublic void onApplicationEvent(CustomEvent event) {System.out.println("Received custom event - " + event.getMessage());}
}

5. 策略模式 (Strategy Pattern)

描述:

  • 策略模式定义了一系列算法,并将每个算法封装起来,使它们可以互换。

Spring 中的应用:

  • Routing DataSource: 在多数据源环境下,可以根据不同的条件选择不同的数据库连接。

  • Transaction Management: 可以配置不同的事务管理器。

示例:

public interface PaymentStrategy {void pay(int amount);
}publicclass CreditCardPaymentStrategy implements PaymentStrategy {@Overridepublic void pay(int amount) {System.out.println("Paid with credit card: $" + amount);}
}publicclass PayPalPaymentStrategy implements PaymentStrategy {@Overridepublic void pay(int amount) {System.out.println("Paid with PayPal: $" + amount);}
}publicclass ShoppingCart {private PaymentStrategy paymentStrategy;public void setPaymentStrategy(PaymentStrategy paymentStrategy) {this.paymentStrategy = paymentStrategy;}public void checkout(int amount) {paymentStrategy.pay(amount);}
}

6. 模板方法模式 (Template Method Pattern)

描述:

  • 模板方法模式定义了一个算法的骨架,而将一些步骤延迟到子类中实现。

Spring 中的应用:

  • JdbcTemplate: 提供了一个执行 SQL 查询的基本模板,具体的查询逻辑由子类或回调函数实现。

  • HibernateTemplate: 类似地,提供了与 Hibernate 交互的基本模板。

示例:

public abstractclass Game {protected abstract void initialize();protected abstract void startPlay();protected abstract void endPlay();// Template methodpublic final void play() {// Initialize the gameinitialize();// Start the gamestartPlay();// End the gameendPlay();}
}publicclass Cricket extends Game {@Overrideprotected void endPlay() {System.out.println("Cricket Game Finished!");}@Overrideprotected void initialize() {System.out.println("Cricket Game Initialized! Enjoy the game.");}@Overrideprotected void startPlay() {System.out.println("Cricket Game Started. Enjoy the game!");}
}

下集预告

下一篇文章将写上Spring框架继续介绍下面三种设计模式的应用:

7. 建造者模式 (Builder Pattern)

8. 装饰器模式 (Decorator Pattern)

9. 适配器模式 (Adapter Pattern)

/// ***你们的关注是我一直写作的动力
System.out.println("请添加我的绿色公主号:");
System.out.println("Java知识日历");

版权声明:

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

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