场景描述
1.有汽车、汽车部件的属性,他们都有一些公共的属性,但是属性的值不一样。针对该部分的场景,如何来设计?
2.比如公有的属性有价格、类型、汽车的品牌等
答案
- Document:底层公共数据的基类,提供最基本的获取、放置属性的配置信息
- AbstractDocument:抽象类,实现了基类,提供属性容器集合,属性配置操作的就是该类中的属性容器集合
- HasPrice:针对价格提供的属性配置类,提供了统一的命名规则和获取价格的方法,继承自Document,真正的实现还是来自AbstractDocument
- Car:汽车组件,构造函数初始化了本身该有的属性集合,对于需要的属性,按照统一的配置进行实现。本身该类就实现了HasModel、HasPrice