当前位置:首页
开发技术指南» 文章正文
    引言:
 

 

    摘要: 我在我自己的机子上建立了一个数据库ecit_course 得到了两个数据库文件:ecit_course_data.mdf,ecit_course_data.ldf 现在我要在另外一台机子上的sql数据库中加入这个数据库,请问我应该怎么做? 两台机子没有联网,是两台相对独立的机子! ......
    摘要: 谢谢 ......


使用一个简单的创建模式来加快对象的创建过程,大家给点想法啦

我们平时创建对象时,都用的是new操作符了,这样还可以调用构造函数,一举两得,但是如下的程序:  
  while(/*一个精密循环*/)  
  {  
      //do   something.  
      MyClass   *pNewObj=new   MyClass(p1,p2,p3...);  
    }  
    相信大家不陌生,读文件、初始化都会用到上面的代码,暂且撇开MemoryPool不谈,如果使用创建模式里面的类厂模式+Clone,如何优化?  
   
  MyClass*   MyClass::MakeOne(T1,T2,T3...)   const  
  {  
    return   new   MyClass(p1,p2,p3);//就是对这种方式进行改进,换成Clone函数。  
  }  
   
  不知到有没有大虾做过?关键的部分:Clone函数的实现要注意些什么?这样的模型效率会不会有比较好的提高?  
  请给点意见,多谢先!

NO.1   作者: Cat

这种模式主要的模式是隐藏真正的创建细节,使得客户端程序员不用考虑究竟创建了哪个类的实例,而由库设计人员自己确定,从而提升客户代码的灵活度。这种模式并不是为了提高效率。  
   
  如果需要高效率创建,还是用Memory   Pool+Inplacment   new比较有效点,下面是一个简单的示例:  
   
  MemoryPool   mp;  
   
  for(int   i   =   0;   i   <   100;   ++i)  
        MyClass   *Obj   =   new(mp.alloc())   (p1,   p2,   p3);  
   
  一般来说,Memory   Pool可以大幅提高效率。


 ·如何创建mdi子窗体    »显示摘要«
    摘要: 我建立了一个主窗体:win(tform),在这个主窗体下生成几个子窗体,分别为:add,change和search,这几个子窗体是mdi类型的。现在生成了一个mdi子窗体,其他的几个子窗体想套用这个mdi模板。其中win主窗体引用add,change和search,这三个子窗体也会use win.pas,但是编译的时候出现如下提示: [fatal error] win.pas[8]:cir......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE