C组成 – 我必须包装所有这些功能吗?

前端之家收集整理的这篇文章主要介绍了C组成 – 我必须包装所有这些功能吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个C类描述了3D空间中对象的方向 – 位置,旋转,缩放等.我有其他类必须需要这样的信息(或其一部分) – 模型,地形,摄像头等.现在我可以让我的方向课的子类,但是谷歌已经告诉我喜欢组合继承.这在哲学上是有意义的 – 一个模型不是一个方向,它有一个(并且是的,我知道是一个事情只是一个启发式).然而,似乎不必要的是,对于所有那些未来的子类来说,重写相同的包装方法几乎是不合适的.像model.getOrientation().set_x(1)这样的东西似乎也很傻.

我可以看到为什么对于小对象来说这不是“太糟糕”,但是对于这个例子(和其他人)来说,如果你必须穿过箍来假装你使用继承,那么这个组合是什么意思?我现在应该甚至使用吗?我几乎肯定我在想这个不正当.

解决方法

它可能看起来很傻,但是你的model.getOrientation().set_x(1)可能是要走的路.

如果你厌倦了键入getOrientation()部分,你可以尝试这样的:

Orientation & orient = model.getOrientation();
orient.set_x(1);
orient.set_y(1);
if( orient.check_something() ) {
  //whatever
}
//etc.

猜你在找的C&C++相关文章