Вопрос управления зависимостями - PullRequest
1 голос
/ 26 августа 2010

Я не уверен, что действительно понимаю управление зависимостями. Значит ли это, что вы не зависите от деталей другого класса? Это не значит, что вы не имеете ничего общего с правильным вызовом? Я продолжаю слышать, чтобы сделать меньший более конкретный класс, но они не могут зависеть друг от друга, и это кажется мне невозможным. Может кто-нибудь попытается просто объяснить это мне. Я приведу несколько примеров ниже.

//Bad Dependency
public class TestOne
{
     TestTwo testTwo;
     public void TestOneMethod()
     {
          testTwo = new TestTwo();
          testTwo.SomeProperty = "Value";
          testTwo.SomeMethodThatWorksWithSomeProperty();
     }
}
//Bad dependency??
public class TestOne
{
     TestTwo testTwo;
     public void TestOneMethod()
     {
          int myInt = 0;
          TestThree testThree = new TestThree();
          //... Some Code that works with testThree

          testTwo = new TestTwo();
          myInt = testTwo.GetSomeInteger(testThree);
     }
}

Может быть только набор настроек для каждого запуска, так почему я хочу продолжать использовать базу данных каждый раз, когда вызывается новый класс ?? Это плохая зависимость


public static class Application
{
    public static int SomeSetting = 0;
    public static GetSettingsFromDatabase()
    {
        //loads the settings for this store
        DatabaseClass dbClass = DatabaseClassDataSource.LoadForStore();
        SomeSetting = dbClass.SomeSetting;
    }
}

public class MyClass
{
    public void MethodOne()
    {
        if(Application.SomeSetting == 1) { //... }
    }
}

public class MyClassTwo
{
    public void MethodOne()
    {
        if(Application.SomeSetting == 1) { //... }
    }
}

Ответы [ 2 ]

1 голос
/ 29 августа 2010

Управление зависимостями - это практика, при которой большая кодовая база не становится не обслуживаемой.Можно сказать, что кодовая база не подлежит сопровождению, когда выглядит как пластинка спагетти, если вы пытаетесь понять, как она структурирована !!

Управление зависимостями состоит в группировке артефактов кода, таких как классы, в именованные компоненты чанкаи убедитесь, что зависимости между компонентами остаются понятными и вменяемыми (избегая недостатков, таких как циклы зависимостей). Подробнее в этой статье: Управление зависимостями компонентов для получения чистой архитектуры

0 голосов
/ 26 августа 2010

Конечно, если вы используете ресурсоемкие действия, такие как вызов базы данных, вы, вероятно, можете оправдать нарушение шаблона проектирования ради производительности.Тем не менее, я не уверен, что это всегда плохая практика - я почти уверен, что есть примеры в .NET Framework (среди прочего, я готов поспорить), которые довольно тесно связаны, хотя я сомневаюсь, что вы увидитемногое из этого подвергается общественности.Однако если вы нарушаете шаблон проектирования, вы можете задокументировать, что происходит и почему, особенно если кто-то еще когда-нибудь будет смотреть или поддерживать этот код, и усваивать столько, сколько сможете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...