记录一个设计的问题_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > 记录一个设计的问题

记录一个设计的问题

 2014/7/12 17:32:54  xuld  程序员俱乐部  我要评论(0)
  • 摘要:需求如下,现有一个类A以及子类B,C,DabstractclassA{abstractvoidfn();}classB:A{overridevoidfn(){}}classC:A{overridevoidfn(){}}classD:A{overridevoidfn(){}}显然,B,C,D需要各自重写相应的fn()来完成自己的功能。但是B,C,D由于功能相似,其fn()实现几乎相同。这个公共的函数有三种写法:1.在A里添加一个protected成员,然后在B,C,D都可直接调用。2
  • 标签:

需求如下,现有一个类A以及子类B,C,D

abstract class A{

   abstract void fn();

}

class B:A{
   override void fn(){}
}

class C:A{
   override void fn(){}
}
class D:A{
   override void fn(){}
}

 

显然,B,C,D需要各自重写相应的 fn() 来完成自己的功能。但是B,C,D由于功能相似,其fn()实现几乎相同。这个公共的函数有三种写法:

1. 在 A 里添加一个 protected 成员,然后在 B,C,D 都可直接调用。

2. 改写 A 的 abstract 为 virtual,然后在子类通过 base.fn() 调用。

3. 新建一个类,并且写成静态函数供B,C,D调用。

  • 相关文章
发表评论
用户名: 匿名