本文纪录阅读java-design-patterns-master的相关琐碎。每种模式分为:概述、使用场景、UML图、总结,四个部分。
代码Git地址:https://github.com/iluwatar/java-design-patterns.git
每小节名称与代码中model对应。UML图来自代码。
abstract-document
抽象文档模式
概述
抽象文档模式是一种面向对象结构设计模式。模式中采用key-value形式存储对象的属性,且确保类型不相关,暴露类型相关的属性数据。模式的意图是为强类型语言构建高灵活性的组件管理,保证新的属性可以自由的添加到对象中,且不丢失类型安全。模式使用trait,将不同的属性划分到不同的接口中。”docuemnt”一词来自于面向文档数据库中( document-oriented databases)。
使用场景
Use the Abstract Document Pattern when
- there is a need to add new properties on the fly
需要轻量的添加新的属性 - you want a flexible way to organize domain in tree like structure
想要灵活的方式像树结构一样组织文档 - you want more loosely coupled system
想要松散的架构系统