描画の実装について質問です。

各クラスごとに描画関数を持たせると仕様変更したときに対応が大変なのですが、
分離するアイディアが出てきません。
おとなしく全部書き換えたほうがいいのでしょうか?


class Object
{
protected:
int x, y;
int width, height;
public:
void Draw()=0;
};

class Character : public Object
{
public:
void Draw()
{
// 描画処理
// これだと仕様変更があった場合に対応するのが大変なのですが、今一いいアイディアが出てきません。
}
};