首页 > 代码库 > 记录一个设计的问题
记录一个设计的问题
需求如下,现有一个类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调用。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。