Secara umum selalu tentang betapa mudahnya memelihara dan memperluas kode Anda. Besok Anda mengetahui bahwa Anda tidak suka API grafik yang Anda gunakan saat ini, dan ingin beralih. Apakah Anda sekarang harus melalui semua kelas objek Anda dan mengubah segalanya, atau apakah Anda masih perlu mengubah kode Anda di satu titik pusat proyek?
Itu tergantung pada apa objek Anda benar-benar lakukan ketika Anda memanggil render (). Selama mereka hanya membungkus panggilan metode di sekitar mesin grafis Anda, itu baik-baik saja, karena logika <-> perbedaan grafis masih akan diberikan.
Misalnya, jika metode render () Anda pada dasarnya adalah metode kenyamanan dan terlihat seperti ini:
void MyClass::render(const Graphics &g)
{
g.draw(this);
}
atau
void MyClass::render()
{
mySprite->render();
}
atau
void MyClass::render()
{
mySprite->UseShader(thatshader);
mySprite->render();
}
atau dekat dengan itu, saya tidak berpikir itu masalah sama sekali.