আপনার কোড বজায় রাখা এবং প্রসারিত করা কতটা সহজ তা সাধারণভাবে সর্বদা এটি। আগামীকাল আপনি বুঝতে পারেন যে আপনি বর্তমানে যে গ্রাফিক্স এপিআই ব্যবহার করছেন তা পছন্দ করেন না এবং আপনি পরিবর্তন করতে চান। আপনি কি এখন আপনার সমস্ত অবজেক্ট ক্লাসের মধ্যে দিয়ে যেতে হবে এবং সমস্ত কিছু পরিবর্তন করতে হবে, বা আপনার কি এখনও প্রকল্পের একটি কেন্দ্রীয় পয়েন্টে আপনার কোডটি পরিবর্তন করতে হবে?
আপনি যখন রেন্ডার () র কল করেন তখন এটি আপনার বস্তুগুলি আসলে কী করছে তার উপর নির্ভর করে। যতক্ষণ না তারা কেবল আপনার গ্রাফিক্স ইঞ্জিনের কাছে পদ্ধতি কলগুলি গুটিয়ে রাখে ততক্ষণে এটি পুরোপুরি ঠিক আছে, কারণ লজিকস <-> গ্রাফিক্সের পার্থক্য এখনও দেওয়া হবে।
উদাহরণস্বরূপ, যদি আপনার রেন্ডার () পদ্ধতিগুলি মূলত সুবিধা-পদ্ধতি হয় এবং এর মতো কিছু দেখায়:
void MyClass::render(const Graphics &g)
{
g.draw(this);
}
অথবা
void MyClass::render()
{
mySprite->render();
}
অথবা
void MyClass::render()
{
mySprite->UseShader(thatshader);
mySprite->render();
}
বা তার কাছে, আমি মনে করি এটি কোনও সমস্যা নয়।