理解DoFactory设计模式的UML——装饰器

2023-12-26

我试图理解下面链接中描述装饰器模式的 UML 图

http://www.dofactory.com/Patterns/PatternDecorator.aspx http://www.dofactory.com/Patterns/PatternDecorator.aspx

我不明白为什么装饰器和组件之间存在“聚合”关系。

我相信它应该是组合,因为装饰器如果没有基本组件就无法存在。


组合比聚合更强,它通常意味着对象拥有其组件的所有权。在这种情况下情况并非如此,因为装饰器不拥有被装饰的对象。此外,您可以删除装饰器,而无需删除装饰对象。

在实践中,聚合和组合之间的界限可能很模糊,通常选择其中之一并没有太大区别,特别是当您将图表视为草图时。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

理解DoFactory设计模式的UML——装饰器 的相关文章

  • 策略模式还是命令模式?

    假设我有一个金融交易列表 我需要针对这些交易执行一系列验证规则 一个例子是我有一笔购买产品的交易 但是首先我需要验证交易中的帐户是否有足够的可用资金 产品没有售完等 由于这些规则 交易将是标记为拒绝 并应指定错误代码 当然 我正在考虑用一个
  • IoC 服务的抽象类还是接口?

    我目前正在使用 IoC 在项目中提供存储库的具体实现 我读过的所有示例都使用接口作为服务的定义 但是 在阅读了 Microsoft 的建议后 建议更喜欢抽象类而不是接口 http msdn microsoft com en us libra
  • java异常处理策略[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • MonoState、Singleton 或派生形式:CRUD 应用程序的最佳方法?

    我有一个相当大的 CRUD WinForm 应用程序 其中有许多对象 人员 注册 计划 案例注释等 该应用程序由 30 多种表单组成 UI 逻辑上被分解 会员 注册 计划 案例说明等 我正在尝试弄清楚如何创建我的人物对象搜索后搜索表格并将对
  • 如何使用温莎城堡注册通用装饰器?

    我需要装饰一切基于ICommandHandler
  • 静态类与类的实例

    我有一个静态类 用于访问我的公共属性 整个应用程序的全局属性 和我在应用程序运行期间使用的方法 例如 我在静态类中设置了一些属性 并且在应用程序运行时我可以从属性中获取值 但我可以使用单例模式创建非静态类并以相同的方式使用它 问题 对于我的
  • 如何将 sqldatareader 转换为 dto 列表?

    我刚刚开始将所有 ado net 代码从 asp net 页面移动到存储库 并为每个表创建 dto 手动 但现在我不知道将 sqldatareader 转换为我的列表的有效方法是什么dto 对象 例如 我的 dto 是 Customer 我
  • 不同保护条件下的状态转换

    在状态模式中这是如何建模的 当当前状态为 A 时 在触发器 X 和条件 C1 上状态 A 到状态 B 当当前状态为 A 时 在触发器 X 和条件 C2 上状态 A 到状态 C 这通常是如何实现的 我有很多可能需要实施的守卫条件 这是相当标准
  • 是否有任何库可以解析Java中的“数字表达式”,例如1,2-9,33-

    我不认为这很难 只是写起来很乏味 一些小的免费 如啤酒 库 我可以在其中放入像 1 2 9 33 这样的字符串 它可以告诉我给定的数字是否与该数字匹配表达 就像大多数程序的打印范围对话框一样 仅匹配奇数或偶数 或匹配每个 2 mod 5 或
  • 通过 Javascript 不断查询服务器 - 好主意吗?

    我有一个小型网站 大约有 5 到 10 名管理员 我已将其设置为监视每个管理员正在执行的操作 添加项目 删除项目等 我的管理面板中有一个列表 显示了集体管理部门之前执行的 10 项活动 今天 我决定每 30 秒进行一次自我更新 我的问题很简
  • 包含其他类集合的类的设计(操作方法)

    如何设计涉及其他类集合的类 一般示例 A 工作空间包含数量Projects A Project包含大量资源 Each Resource可能包含大量Files 所以这里标识的类可以是 Workspace Project Resource 和
  • PHP:我是否将事件驱动编程与信号感知接口(信号和槽/观察者模式)混淆了?

    我看到很多人说 Symfony2 Zend Framework 2 等都是事件驱动的 在桌面世界中 通过事件驱动编程 我了解到应用程序每当其状态发生变化时都会通知其观察者 由于 PHP 应用程序是无状态的 因此无法执行此类操作 IE 让观察
  • 领域驱动设计和工厂类的作用

    我不清楚工厂类的角色和职责是什么 我知道工厂类应该负责创建域对象 聚合根 及其关联的实体和值对象 但我不清楚 DDD 架构的工厂 层 在哪里 工厂应该直接调用存储库来获取其数据还是服务库 工厂在以下框架中的位置 UI gt 应用程序 gt
  • UML:一对多关系表示?

    我是 UML 新手 还不太理解其表示法 这是我对图的理解 The system has many doctors Doctors can have many patients however patients can only have o
  • 在事件聚合器中混合枚举与事件类

    我最近尝试实现自己的简单事件聚合器 我从 MSDN 上的事件聚合器文章中获得了很多灵感 关于 MSDN 上的事件聚合器 我注意到一件事是事件实际上是它们自己的类 这根本不是一件坏事 然而 我只是觉得总是为每个小事件创建一个新的空类很尴尬 我
  • 空对象模式以避免空检查?

    最近 我遇到了空对象设计模式 我的同事说它可以用来消除整个代码中遇到的空指针检查 例如 假设 DAO 类返回有关 Customer 的信息 在名为 CustomerVO 的值对象中 我的主类应该提取名字和电子邮件 ID 并向客户发送电子邮件
  • Android:单一活动,多个视图

    我不是 Android 专业人士 尽管我开发了一个包含 50 多个活动的应用程序 这使得该应用程序非常庞大 经过8周的开发 现在出现了一些问题 导致应用程序难以维护和升级 我正在处理的主要问题是 我无法将对象引用传递给活动的构造函数 事实上
  • 在 Java 中创建 T 的新实例

    在C 中 我们可以定义一个泛型class A
  • [GoF]-ConcreteSubject 可以覆盖通知方法吗?

    我正在模拟一种情况 其中存在 通知框 观察者 list1 list2 list3 这个科目 现在我会制作一张图表 其中使用观察者模式描述每个列表实现不同类型的notify 这一事实 例如 列表状态的某些变化只需要按照某些标准通知给某些观察者
  • 这个单例能够抵抗序列化和反射攻击吗?

    以下代码是否能够抵抗序列化和反射攻击 public class Example private static Example instance new Example private Example public static Exampl

随机推荐