Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
在用 Java 编写了一段时间并使用了 Graphics2d 之后,我想到了使用我在其他语言中学到的东西,例如 C++。我通常使用 SFML,并有一个 Render 类,以减少其他类对 SFML 的依赖(例如,如果我必须切换库,我不需要在不相关的类中切换太多代码)。我想知道我是否应该让这个 Render 类继承 RenderWindow,或者只是将它作为一个成员。
当前经常被建议的成语是“组合优于继承”。从你对你在做什么的模糊描述来看,实际上不可能给出准确的答案。我假设您正在谈论您的框架和任何图形库之间的简单接口。
在这种情况下,答案很简单,因为继承会自动更改渲染的 API,并且它会随着您使用的每个图形库而改变,从而破坏了它的整个目的。因此,如果您将其用作成员变量,您可以为您的框架制作一个稳定的 API,并在渲染类的范围内对不同的库进行所有适配。