面向对象设计中如何设计基类、子类,如何把类的方法进行较清晰的分类?

chengduforest 2006-05-25 04:17:48
现在做的几个项目都在按照面向对象的方法来做,现在的设计是这样的:

基类目前只有一个A

子类很多B、C、D、E...,都继承于基类A,子类的公用方法都写在基类A中。

随着子类的增多,基类A中的公用方法越来越多,显得比较乱,感觉这样的设计似乎有点问题,想请教OOP高手,如何设计才能做到基类、子类中的方法归类合理且清晰。

基类A中的方法能否有办法进行归类,或设计成多个基类(不知如何设计才好)。

谢谢!
...全文
197 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yzg100 2006-05-25
  • 打赏
  • 举报
回复
用接口来分类也很不错嘛.
Ivony 2006-05-25
  • 打赏
  • 举报
回复
比如说打印处理:

public class PrinterManager
{
internal PrinterManager( BaseManager manager )
{

}

//...打印处理的方法
}

public class BaseManager
{
private PrinterManager _printer
public PrinterManager Printer
{
get
{
if ( _printer == null )
_printer = new PrinterManager( this );
return _printer;
}
}
}

调用:
Printer.Print( document );
JasonHeung 2006-05-25
  • 打赏
  • 举报
回复
使用多个接口。
chengduforest 2006-05-25
  • 打赏
  • 举报
回复
还有可以把类似的一组方法拆分出来,由另一个类来处理。

例如:

public FileManager GetFileManager()//把与文件相关的方法放到另一个类里面去处理。

----------------------------------------------------------------------------
这拆分出来的另一个类中的方法在基类A和子类B、C、D...中如何调用?

我用的基类A倒是可以按数字处理、字符处理、日期处理、打印处理等功能划分开
Ivony 2006-05-25
  • 打赏
  • 举报
回复
还有可以把类似的一组方法拆分出来,由另一个类来处理。

例如:

public FileManager GetFileManager()//把与文件相关的方法放到另一个类里面去处理。
Ivony 2006-05-25
  • 打赏
  • 举报
回复
尽量使用重载,减少方法的名字。

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧