Genel olarak her zaman kodunuzu korumanın ve genişletmenin ne kadar kolay olduğu ile ilgilidir. Yarın, şu anda kullandığınız grafik API'sını beğenmeyeceğinizi ve geçiş yapmak istediğinizi anlayacaksınız. Şimdi tüm nesne sınıflarınızı gözden geçirmek ve her şeyi değiştirmek zorunda kalacak mısınız yoksa hala projenizin merkezi bir noktasında kodunuzu değiştirmeniz gerekiyor mu?
Render () öğesini çağırdığınızda nesnelerinizin gerçekte ne yaptığına bağlıdır. Yöntem aramalarını grafik motorunuzun etrafına sararlarsa, mantık <-> grafik ayrımı hala verileceğinden, tamamen iyi.
Örneğin, render () yöntemleriniz temel olarak uygunluk yöntemleriyse ve şuna benzerse:
void MyClass::render(const Graphics &g)
{
g.draw(this);
}
veya
void MyClass::render()
{
mySprite->render();
}
veya
void MyClass::render()
{
mySprite->UseShader(thatshader);
mySprite->render();
}
ya da buna yakın, bunun bir sorun olduğunu düşünmüyorum.