Spiga

一天一个重构方法(37):折叠继承体系

2009-10-03 14:30:49

Collapse Hierarchy:折叠继承体系

所谓重构继承体系,往往是将方法和字段在体系中上下移动。完成这些动作后,你很可能发现某个子类并未带来该有的价值,因此需要把两个类合并

public class Website
{
	public string Title { get; set; }
	public string Description { get; set; }
	public IEnumerable<Webpage> Pages { get; set; }
}
public class StudentWebsite : Website
{
	public bool IsActive { get; set; }
}

这里的子类并没有过多的功能,只是表示站点是否激活。这时我们会意识到判断站点是否激活的功能应该是通用的。因此可以将子类的功能放回到Website 中,并删除StudentWebsite 类型。

public class Website
{
	public string Title { get; set; }
	public string Description { get; set; }
	public IEnumerable<Webpage> Pages { get; set; }
	public bool IsActive { get; set; }
}