这样的设计合理么解决办法

这样的设计合理么
假如有一个Light类
class   CLight
{
};

按照常理,当我们向场景中添加一盏灯时会这样做
CLight   *pLight1   =   new   CLight;
再添加一盏灯时
CLight   *pLight2   =   new   CLight;

但是目前项目却被设计成了
class   CLight
{
public:
      void   AddLight();
};

当我们向场景中添加一盏灯时会这样做
CLight   *pLight1   =   new   CLight;
pLight-> AddLight();
再添加一盏灯时
pLight-> AddLight();

有什么好处?


------解决方案--------------------
这样addlight,light类内部肯定要有一个维护链表吧,不然就丧失对这些小light的控制了..
类的对象数目少了,就一个.但并不会减少所耗的内存.而且链表的代码也不方便写.

按照前者做法就是外部自己管理这些CLight 对象...

我觉得个人觉得很无所谓的..因为openGL和directX场景里灯的个数都是不多的..
又不是百八十个灯,所以无所谓效率问题.至于合理,因为个数很少,再怎么不合理,也很清晰,合理也谈不上.. 这类问题不去计较吧.项目团结一致向前让客户满意是最大的目标..


------解决方案--------------------
因为每次创建一个对象都执行构建函数,如果用指针的话就只执行一次,可以节省时间 。
而且如果要创建多个对像的话,第二种也麻烦,
------解决方案--------------------
没有最合理,只有更合理.
------解决方案--------------------
哪一种都可以,统一就好。
字体、灯光最好也一样

将来易于维护
模板化