设计模式 | 抽象文档模式详解

一、目的

能够为对象动态的添加属性,并且保证强类型语言的类型安全。

二、解释

抽象文档模式可以处理额外的非静态属性。 此模式使用特征概念来实现类型安全并将不同类的属性分离到一组接口中。

以汽车举例,刚开始汽车制造商并不知道需要多少零件。等到汽车建造完毕才知道使用了哪些零件。而这些零件是在必要时才添加进去的。 简单地说,抽象文档模式允许在对象不知道的情况下将属性附加到对象。

三、类关系图

Docment 接口

提供了put方法编辑属性,get方法获取属性,children方法遍历子文档。

AbstractDocument 抽象类

定义Document 接口中方法的基本实现。

HasParts、HasType、HasPrice、HasModel 接口

四类子文档,分别是零件、类型、价格、型号。

Car、Part 类

具体业务类,汽车、零部件

四、总结

抽象文档模式允许开发人员在非类型化树结构中存储变量,并使用类型化视图对文档进行操作。可以在不影响内部文档结构的情况下创建视图的新视图或替代实现。

这样做的优点是系统更松散耦合,但它也增加了反射错误的风险,因为属性的继承类型并不总是确定的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孟华328

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值