2010-08-26 3 views
1

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

//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); 
    } 
}

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


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) { //... } 
    } 
} 

ответ

0

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

1

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

Dependency Management состоит в группировке кодовых артефактов, такие как классы, в куске имени компонентов и проверьте, что зависимости между компонентами остается понятными и здравомыслящими (избегая недостатки, такие как циклы с зависимостями в) .more детали в этой статье: Control component dependencies to gain clean architecture

Смежные вопросы