享元模式:优化对象创建,实现高效共享
需积分: 5 184 浏览量
更新于2024-08-16
收藏 2.66MB PPT 举报
"享元模式-戏说软件设计模式"
享元模式是一种软件设计模式,它主要目的是为了提高性能,特别是当系统中存在大量相似对象时。享元模式通过共享技术来有效支持大量细粒度对象的复用。在这个比喻中,手机里的常用句子就像是享元对象,它们被预先存储并可重复使用,而MM的名字则代表外部特征,这部分信息不共享,可以根据不同情境变化。
享元模式的核心是区分内蕴状态(Intrinsic State)和外蕴状态(Extrinsic State)。内蕴状态是对象内部状态,与特定环境无关,可以被共享。外蕴状态则是依赖于环境变化的状态,不能被共享。享元对象只负责维护内蕴状态,而外蕴状态由客户端来管理。这样做的好处是可以减少内存中对象的数量,提高系统效率。
在享元模式中,通常会有一个享元工厂,它负责创建和管理享元对象,确保它们的正确共享。客户端不直接创建享元对象,而是通过工厂获取。工厂方法模式与此有关,它是一种类的创建模式,通过定义一个创建对象的接口,让子类决定实例化哪一个类。这使得程序可以使用未知的类,并且可以灵活地添加新的类。
工厂方法模式将产品创建的责任推给了子类,使得系统更具扩展性和灵活性,避免了简单工厂模式中的类爆炸问题。它提供了一种抽象,使得客户类与具体的产品实现解耦。在工厂方法模式中,抽象工厂定义了一个创建对象的接口,具体工厂类实现了这个接口,创建具体的产品对象。这样,增加新产品时只需添加新的具体工厂类即可,无需修改原有代码。
简单工厂模式,虽然不是GOF的23种设计模式之一,但也是创建型模式的一种。它提供了一个静态方法来创建对象,客户只需要知道具体的产品类型,而无需了解如何创建。然而,简单工厂模式有一个缺点,即当需要添加新产品时,可能需要修改工厂类,这违背了开闭原则。
这些设计模式都是为了解决对象创建过程中的不同问题,如灵活性、扩展性以及性能优化。享元模式关注对象复用,工厂方法模式关注创建过程的抽象,而简单工厂模式则提供了一种简单直接的对象创建方式。它们都是面向对象设计中不可或缺的一部分,帮助我们构建更加健壮、可维护的软件系统。
2009-09-24 上传
2017-01-23 上传
2013-09-23 上传
2008-11-08 上传
2014-04-24 上传
2012-12-29 上传
2021-03-23 上传
2007-08-30 上传
点击了解资源详情
琳琅破碎
- 粉丝: 19
- 资源: 2万+
最新资源
- Android圆角进度条控件的设计与应用
- mui框架实现带侧边栏的响应式布局
- Android仿知乎横线直线进度条实现教程
- SSM选课系统实现:Spring+SpringMVC+MyBatis源码剖析
- 使用JavaScript开发的流星待办事项应用
- Google Code Jam 2015竞赛回顾与Java编程实践
- Angular 2与NW.js集成:通过Webpack和Gulp构建环境详解
- OneDayTripPlanner:数字化城市旅游活动规划助手
- TinySTM 轻量级原子操作库的详细介绍与安装指南
- 模拟PHP序列化:JavaScript实现序列化与反序列化技术
- ***进销存系统全面功能介绍与开发指南
- 掌握Clojure命名空间的正确重新加载技巧
- 免费获取VMD模态分解Matlab源代码与案例数据
- BuglyEasyToUnity最新更新优化:简化Unity开发者接入流程
- Android学生俱乐部项目任务2解析与实践
- 掌握Elixir语言构建高效分布式网络爬虫