С++, избежать ромбовидного наследования
От: johny5 Новая Зеландия
Дата: 06.12.12 09:53
Оценка:
Есть простенькая задача.
Есть objects, они делятся на несколько групп (это игра): players, NPC, structures. У них много общего и потому видится сразу иерархия наследования:

class CObject {};
class CPlayer : CObject {};
class CNPC : CObject {};
class CStructure : CObject {};



С другой стороны есть несколько приложений: Node, Server, Community, Client. Каждый из них хочет видеть объект по своему:
class CObject {};
class CNodeObject : CObject {};
class CServerObject : CObject {};
class CCommunityObject : CObject {};
class CClientObject : CObject {};


Желательно иметь общую базу объекта под конкретное приложение, там и детали хранения будут спрятаны и много чего.

Ну а дальше очевидно, хочется иметь и то и другое вместе, но делать ромбовидное наследование совсем не хочется.
Есть какие идеи, куда думать посоветуете?

Спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.