微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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.

原文地址:https://www.jb51.cc/c/114139.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐