7、设计模式之享元与观察者模式详解

设计模式之享元与观察者模式详解

1. 装饰器模式的优缺点

装饰器模式深受开发者喜爱,因为它使用透明且具有一定灵活性。通过该模式,对象可以被包装或“装饰”上新的行为,且无需担心基础对象被修改。从更广泛的角度看,此模式避免了依赖大量子类来实现相同的功能。

不过,在实现该模式时也存在一些缺点。如果管理不善,它会使应用程序架构变得复杂,因为会在命名空间中引入许多小而相似的对象。其他不熟悉该模式的开发者可能难以理解其用途,从而增加管理难度。为解决这一问题,可进行充分的注释或对模式进行研究。只要合理控制装饰器在应用中的使用范围,就能避免这些问题。

2. 享元模式概述

享元模式是一种经典的结构型解决方案,用于优化重复、缓慢且数据共享效率低下的代码。其目标是通过与相关对象尽可能多地共享数据(如应用程序配置、状态等)来减少应用程序的内存使用。该模式由 Paul Calder 和 Mark Linton 在 1990 年首次提出,名称来源于拳击比赛中体重低于 112 磅的蝇量级,寓意该模式旨在帮助实现小的内存占用。

在实践中,享元模式的数据共享是将多个对象使用的相似对象或数据结构提取到一个外部对象中,然后将该对象传递给依赖这些数据的对象,而不是在每个对象中存储相同的数据。

3. 享元模式的应用方式

享元模式有两种应用方式:
- 数据层 :处理内存中大量相似对象之间的数据共享。
- DOM 层 :作为中央事件管理器,避免为具有相似行为的父容器中的每个子元素附加事件处理程序。传统上,享元模式在数据层应用较多,下面先介绍数据

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值