Справка по UML C # Принципы разработки - PullRequest
5 голосов
/ 02 июня 2011

Может ли кто-нибудь указать на значение приведенного ниже графика:

enter image description here

  1. Какова связь между PolicyLayer и PolicyServiceInterface
  2. Какая связь между PolicyServiceInterface и MachanismLayer.

C # код также был бы признателен!

Обратите внимание, что UML взят из Agile принципов, шаблонов и практик в C # Мартин С. Роберт, Мартин Мика 2006.

Добавлено 15 2011/6/2

Имеют ли следующие значения одинаковое значение: 1) Сплошная линия с треугольником на одном конце 2) Пунктирная линия с треугольником на одном конце

Добавлено 2011/6/3 1-е

В чем разница между: 1) Сплошная линия со стрелкой на одном конце 2) Пунктирная линия со стрелкой на одном конце

Пример в этом примере и PersistentObject и ThirdPartyPersistentSet по ссылке ниже:

Справка по UML Принципы проектирования C #

Добавлено 2011/6/3 2-го

Может ли взаимосвязь между PolicyLayer и PolicyServiceInterface, как показано ниже:

public class PolicyLayer

{
    private PolicyServiceInterface policyServiceInterface = new PolicyServiceInterfaceImplementation();
}

class PolicyServiceInterfaceImplementation:PolicyServiceInterface {}

Относительно

Ответы [ 2 ]

7 голосов
/ 02 июня 2011

1) Какова связь между PolicyLayer и PolicyServiceInterface

-----> равно Association ("знает")

Ассоциация http://www.sedris.org/drawings/uml_8.gif

C # код:

public interface PolicyServiceInterface { }

public class PolicyLayer
{
    private IPolicyServiceInterface _policyServiceInterface;
    // Constructor Assocation
    public PolicyLayer(IPolicyServiceInterface policyServiceInterface)
    {
        _policyServiceInterface = policyServiceInterface;
    }
}

2) Какая связь между PolicyServiceInterface и MachanismLayer.

- - - |> равно Realization («инвентарь»)

Realization

C # код:

public interface PolicyServiceInterface { }

public class MachanismLayer : PolicyServiceInterface 

3) Имеют ли следующие значения одинаковое значение: 1) Сплошная линия с треугольником на одном конце 2) Пунктирная линия с треугольником на одном конце?

Нет, они имеют разные значения:

----- |> равно Generalization ("наследует")

Generalization

C # код:

public class PolicyServiceInterface { } // could also be abstract

public class MachanismLayer : PolicyServiceInterface 

В чем разница между: 1) сплошной линией со стрелкой на одном конце 2) пунктирной линией со стрелкой на одном конце

- - -> is Dependency («использует a») Существуют различные формы зависимости, включая локальные переменные, значения параметров, статические вызовы функций или возвращаемые значения.

Dependency

C # код:

// Here Foo is dependent on Baz
// That is Foo - - -> Baz
public class Foo {
   public int DoSomething() { // A form of local variable dependency
       Baz x = new Baz();
       return x.GetInt();
   } 
}

См. Мой ответ здесь Состав и объединение.

2 голосов
/ 02 июня 2011

PolicyLayer использует интерфейс службы Policy (возможно, он содержит ссылку). MachanismLayer реализует PolicyServiceInterface

 public interface IPolicyServiceInterface
    {
        void DoSomething();
    }

    public class MachanismLayer : IPolicyServiceInterface
    {
        public void DoSomething()
        {
            Console.WriteLine("MachanismLayer Do Something");
        }
    }

    public class PolicyLayer
    {
        private IPolicyServiceInterface _policyServiceInterface;
        public PolicyLayer(IPolicyServiceInterface policyServiceInterface)
        {
            _policyServiceInterface = policyServiceInterface;
        }

        public void DoSomethig()
        {
            _policyServiceInterface.DoSomething();
        }
    }

    public class Program
    {
        public static void Main(string[] agrs)
        {
           MachanismLayer machanismLayer=new MachanismLayer();
           PolicyLayer policyLayer = new PolicyLayer(machanismLayer);
           policyLayer.DoSomethig();
        }
    }
...