影响是有的,是具体情况而定,一般来说影响很小,子类继承只是建立一个指向父类的引用,就像你用一个子类继承dataset类,.net实现datset类的代码应该是很多的吧?但是它对你子类的没有太大的影响。但是你的子类如果继承的是一个String类,它运行时效率一般就会比继承自dataset类效率稍微高一点。

解决方案 »

  1.   

    我的基类包含很多页面公用方法,比如用户是否可以访问权限、取得系统中所有用户(返回DataTable)、取得系统中组织机构数据(返回DataTable)、结果处理(根据用户操作返回值跳转到不同页面)等。看大家的意见是否不影响效率,请问能告诉我为什么吗?谢谢
      

  2.   

    其实就是JIT编译的问题,MS就推荐这样做  :)你可以看看Duwamish 7.0,里面就是如此做的(基类中也包含了DataSet等复杂对象)
    所谓一次编译,动态装入...
      

  3.   

    这里没人知道你的实际情况是怎样的.看到你提的问题,说明你已经关心代码设计方面了,看一下<<重构>>,你会受益匪浅.
      

  4.   

    TO  atlove(星) ( ) 、 atlove(星) ( ) :这样的理解是错误的。即使你不在基类里处理‘大量数据’,这些大量的数据也要在你的页面被处理的。所以这个方面的影响是不存在的,试想你不在基类里判断用户是否是合法登陆用户那么你就不得不在每个页面里判断用户是否经过登陆才进入页面的,这样你不得不在每个页面去编写代码(当然这个动作不一定必要做在基类,这只是一个例子)相反的,如果你把这些大量的、重复的判断动作放到了基类里,理论上至少是符合OO思想的(如果登陆或者其他逻辑发生变化那么你只要做一次改动,就到处生效);实际上也不会影响性能,恰恰相反可能会提高应用程序的性能。MS的Duwamish就是很好的例子,他鼓励我们尽可能把页面的一些通用性的控件包装起来,做成用户控件(有缓存的最好)。这样可以提高一点应用程序性能其实看看JIT编译原理,就不难知道楼主的疑虑是不存在的==
      

  5.   

    TO henryfan1(每天好心情(*_*)) :
    再仔细想想看,怎么会是增加耦合度呢?明明是减少耦合啊?如果全部做在各个页面里才是增加偶合啊:)太多业务的东西<<<<<这里肯定放的是通用的业务处理,而不是所有业务处理TO feigmin(慢刀浪子) 
    http://www.microsoft.com/china/msdn/library/dndotnet/html/highperfmanagedapps.asp
    仔细看看,会有收获的
      

  6.   

    谢谢 qimini(循序渐进)的资料和指点。
    同时页感谢 henryfan1(每天好心情(*_*)) 的参与
      

  7.   

    qimini(循序渐进) 
    建议好好看相模设计式和如何定义一个好的基础类。