我有两个类,每个类都做相同的事情,但是唯一的区别是,它们在代码中的某些函数中都使用不同的逻辑。说:
class A
{
//has same fields, and method
void GetDataTable()
{
//logic here changes up to table of the database and for some fields.
}
}
class B
{
//has same fields, and method
void GetDataTable()
{
//logic here changes up to table of the database and for some fields.
}
}
最后,我将添加另一个具有不同逻辑的相同行为类和
GetDataTable
方法。我必须申请哪种设计模式或OO技术才能获得更多质量的代码。 最佳答案
您可能正在寻找Strategy Pattern。
使用每个“逻辑”类必须实现的方法定义一个接口。每个“逻辑”类都将实现此接口,并在实现的方法中执行其逻辑。
interface IGetDataTable
{
void GetDataTable();
}
class A : IGetDataTable
{
public void GetDataTable() { /* Do logic here for class A */ }
}
class B : IGetDataTable
{
public void GetDataTable() { /* Do logic here for class B */ }
}
然后,根据需要选择适当的类(实现
IGetDataTable
)。关于c# - 我有哪种设计模式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24465886/