Java中如何应用享元模式优化设计?

2026-05-25 21:300阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1783个文字,预计阅读时间需要8分钟。

Java中如何应用享元模式优化设计?

本文通过优化购票的重复流程,说明共享元模式。为了加深对该模式的理解,以下以String和基本数据类型的包装类对模式的设计进行一步说明。读者可下载完整代码到本地进行学习,实现优化购票的功能。

本文通过优化买票的重复流程来说明享元模式,为了加深对该模式的理解,会以String和基本数据类型的包装类对该模式的设计进一步说明。

读者可以拉取完整代码到本地进行学习,实现代码均测试通过后上传到码云,本地源码下载。

一、引出问题

鉴于小王之前的优质表现,老王决定带小王出去旅游一下,但在火车站买票时却陷于了长长的队伍。

老王注意到,每次售票员卖票时都重新走一遍卖票的所有流程,很明显,如果始发地和目的地如果一样的成人票和儿童票是可以复用流程的,如果复用的话就可以大大提高卖票效率。

二、概念和使用

上面所说的复用流程实际上就是享元模式的设计思想,它是构造型设计模式之一,它通过共享数据使得相同对象在内存中仅创建一个实例,以降低系统创建对象实例的性能消耗。

享元模式包含三个角色:

(1)抽象享元Flyweight类:享元对象抽象基类或接口。

(2)具体享元ConcreteFlyweight类:实现抽象享元类。

(3)享元工ctory类:厂FlyweightFa享元模式的核心模块,负责管理享元对象池、创建享元对象,保证享元对象可以被系统适当地共享。

当一个客户端对象调用一个享元对象的时候,享元工厂角色会检查系统中是否已经有一个符合要求的享元对象,如果已有,享元工厂角色就提供这个已有的享元对象;如果没有就创建一个。

老王基于享元模式开发了一套卖票系统,如果起点和终点一样,成人票和儿童票就可以复用一套流程。

阅读全文

本文共计1783个文字,预计阅读时间需要8分钟。

Java中如何应用享元模式优化设计?

本文通过优化购票的重复流程,说明共享元模式。为了加深对该模式的理解,以下以String和基本数据类型的包装类对模式的设计进行一步说明。读者可下载完整代码到本地进行学习,实现优化购票的功能。

本文通过优化买票的重复流程来说明享元模式,为了加深对该模式的理解,会以String和基本数据类型的包装类对该模式的设计进一步说明。

读者可以拉取完整代码到本地进行学习,实现代码均测试通过后上传到码云,本地源码下载。

一、引出问题

鉴于小王之前的优质表现,老王决定带小王出去旅游一下,但在火车站买票时却陷于了长长的队伍。

老王注意到,每次售票员卖票时都重新走一遍卖票的所有流程,很明显,如果始发地和目的地如果一样的成人票和儿童票是可以复用流程的,如果复用的话就可以大大提高卖票效率。

二、概念和使用

上面所说的复用流程实际上就是享元模式的设计思想,它是构造型设计模式之一,它通过共享数据使得相同对象在内存中仅创建一个实例,以降低系统创建对象实例的性能消耗。

享元模式包含三个角色:

(1)抽象享元Flyweight类:享元对象抽象基类或接口。

(2)具体享元ConcreteFlyweight类:实现抽象享元类。

(3)享元工ctory类:厂FlyweightFa享元模式的核心模块,负责管理享元对象池、创建享元对象,保证享元对象可以被系统适当地共享。

当一个客户端对象调用一个享元对象的时候,享元工厂角色会检查系统中是否已经有一个符合要求的享元对象,如果已有,享元工厂角色就提供这个已有的享元对象;如果没有就创建一个。

老王基于享元模式开发了一套卖票系统,如果起点和终点一样,成人票和儿童票就可以复用一套流程。

阅读全文