根据需要在运行时向对象(类)添加功能

时间:2017-01-10 18:01:00

标签: oop design-patterns

我有一个要求,我必须创建一个json文件,它将有子对象,可以描述车辆


  | - V1
  | - V2

现在可以有任意数量的车辆,只有1根。这些车辆也可以根据我们的需要添加,以满足不同的需求。新车也可以在不久的将来添加。

所以我想到了接口IV和所有V1,V2,...继承自它。 IV将具有函数getDescription,它将由所有具体实现返回并添加到json文件中。所以我可以将V1,V2的数组传递给Root的构造函数并调用execute来生成json

针对此类要求建议采用哪种设计模式。我想到了装饰器模式,但在这种情况下,根元素将与子元素不同,因此它们可以从不同的inrefaces继承

1 个答案:

答案 0 :(得分:0)

Visitor模式怎么样? 访客走过对象结构(可以是root和v1,..)
然后在每个步骤中通过结构中的对象,您可以有一个或多个操作(在这种情况下,将以json格式打印的车辆描述)