我有两个类,每个类都做相同的事情,但是唯一的区别是,它们在代码中的某些函数中都使用不同的逻辑。说:

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/

10-10 22:35