在哪里放置一个共享两个类逻辑的方法

时间:2017-07-27 11:10:03

标签: c# architecture

我有两个课程,BuildingHandlerTestHandler

BuildingHandler包含LoadBuildings的方法,TestHandler包含LoadTests()

的方法

现在我想创建一个名为LoadBuildingTests的函数。

由于功能与建筑物和测试相关,我不确定将其放入哪个处理程序。

我倾向于在LoadBuildingTests中使用BuildingHandler,然后一旦检索到ID TestHandler.LoadTests();

这看起来是否合理,或者我是以错误的方式接近它?我应该研究接口还是其他方法?

1 个答案:

答案 0 :(得分:2)

我将LoadBuildingTests留在BuildingHandler内并传递TestHandler作为参数:

public class BuildingHandler
{
    public static void LoadBuildingTests(TestHandler testHandler)
    {
        if (testHandler == null) throw ....

        var building = LoadBuilding();
        var tests = testHandler.LoadTests(building.Id);
        //....
    }

    //..
}

同样有效的是在TestHandler中实现该方法并传递BuildingHandler作为参数,但我没有足够的上下文来决定哪个更好。乍一看,我更喜欢第一个选项。