Refactor之Extract Interface
假如我们编写了下面的Cat类之后,又想添加一个Dog 类。我们发现Cat类中有与Dog类共同的方法(比如Move()和Speak())。于是,我们就可以把这些方法提取到一个新的接口中,然后让Cat类和Dog类都执行该接口。
class Cat
{
public void Move()
{ }
public string Speak()
{
return "Miao.";
}
public void ClimbTree()
{ }
}
1. 先选取要提取的类
2. 右键点击该类
3. 填写新的接口名,选择要提取的成员
4. 点击OK后,IAnimal接口被添加到一个新文件中。
namespace ConsoleApplication1
{
interface IAnimal
{
void Move();
string Speak();
}
}
原来的Cat类也被修改为执行IAnimal接口:
class Cat : ConsoleApplication1.IAnimal
{
public void Move()
{ }
public string Speak()
{
return "Miao.";
}
public void ClimbTree()
{ }
}