Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Что значит пунктирная стрелка в UML / 14 сообщений из 14, страница 1 из 1
05.02.2014, 11:30
    #38549893
redwhite90
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что значит пунктирная стрелка в UML
небезысвестный паттерн команда



Что значит стрелка от клиента к команде?
почему она пунктьирная?
...
Рейтинг: 0 / 0
05.02.2014, 11:36
    #38549909
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что значит пунктирная стрелка в UML
Ну, RTFM же.
http://en.wikipedia.org/wiki/Class_diagram Dependency

Dependency is a weaker form of bond which indicates that one class depends on another because it uses it at some point in time. One class depends on another if the independent class is a parameter variable or local variable of a method of the dependent class. This is different from an association, where an attribute of the dependent class is an instance of the independent class.
http://en.wikipedia.org/wiki/Dependency_(UML) UML - defined dependencies include:
«call» UML2: The client (an operation) may call the supplier (an operation)
«create» UML2: The client (a classifier) may create instances of the supplier (a classifier)
«derive» UML2: The client (e.g., attribute value, link) may be computed from the supplier(s)
«instantiate» UML2: Operations of the client (a classifier) may create instances of the supplier (a classifier)
«permit» UML2: Obsolete
«realize» UML2: Obsolete
«refine» UML2: The client element(s) are at a "later" semantic level than the supplier(s)
«send» UML2: The client (an operation) sends the supplier (a signal)
«substitute» UML2: The client element can replace (under some circumstances) the supplier
«trace» UML2: The client elements "trace" to the suppliers. Typically used for levels of requirements
«use» UML2: The client element somehow "uses" the supplier
...
Рейтинг: 0 / 0
05.02.2014, 13:19
    #38550133
redwhite90
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что значит пунктирная стрелка в UML
Blazkowicz,
пример реализации с википедии:

Код: python
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
import java.util.List;
import java.util.ArrayList;
 
/* The Command interface */
public interface Command {
   void execute();
}
 
/* The Invoker class */
public class Switch {
   private List<Command> history = new ArrayList<Command>();
 
   public Switch() {
   }
 
   public void storeAndExecute(Command cmd) {
      this.history.add(cmd); // optional 
      cmd.execute();        
   }
}
 
/* The Receiver class */
public class Light {
   public Light() {
   }
 
   public void turnOn() {
      System.out.println("The light is on");
   }
 
   public void turnOff() {
      System.out.println("The light is off");
   }
}
 
/* The Command for turning on the light - ConcreteCommand #1 */
public class FlipUpCommand implements Command {
   private Light theLight;
 
   public FlipUpCommand(Light light) {
      this.theLight = light;
   }
 
   public void execute(){
      theLight.turnOn();
   }
}
 
/* The Command for turning off the light - ConcreteCommand #2 */
public class FlipDownCommand implements Command {
   private Light theLight;
 
   public FlipDownCommand(Light light) {
      this.theLight = light;
   }
 
   public void execute() {
      theLight.turnOff();
   }
}
 
/* The test class or client */
public class PressSwitch {
   public static void main(String[] args){
      Light lamp = new Light();
      Command switchUp = new FlipUpCommand(lamp);
      Command switchDown = new FlipDownCommand(lamp);
 
      Switch mySwitch = new Switch();
 
      try {
         if ("ON".equalsIgnoreCase(args[0])) {
            mySwitch.storeAndExecute(switchUp);
         }
         else if ("OFF".equalsIgnoreCase(args[0])) {
            mySwitch.storeAndExecute(switchDown);
         }
         else {
            System.out.println("Argument \"ON\" or \"OFF\" is required.");
         }
      } catch (Exception e) {
         System.out.println("Arguments required.");
      }
   }
}



разве PressSwitch и Switch с одной стороны и PressSwitch и switchUp(/switchDown) с другой стороны имеют разные отношения?
...
Рейтинг: 0 / 0
05.02.2014, 13:31
    #38550163
redwhite90
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что значит пунктирная стрелка в UML
кстати открыл книжку от head first - там обычная стрелка - не пунктирная
...
Рейтинг: 0 / 0
05.02.2014, 13:35
    #38550168
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что значит пунктирная стрелка в UML
Грубо говоря, Клиент не имеет постоянной ссылки на Команду. Он получает её в процессе и как-то использует. Не зная даже явно какая там конкретно команда.
Сплошные линии указывают на более прочные связи, например, поля класса.
...
Рейтинг: 0 / 0
05.02.2014, 13:37
    #38550173
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что значит пунктирная стрелка в UML
...
Рейтинг: 0 / 0
05.02.2014, 16:06
    #38550555
redwhite90
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что значит пунктирная стрелка в UML
Blazkowicz,

спасибо.
...
Рейтинг: 0 / 0
05.02.2014, 16:45
    #38550649
redwhite90
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что значит пунктирная стрелка в UML
Blazkowicz, ещё одна почемучка.
почему отношение между иныокером и клиентом не показано на диаграмме?
...
Рейтинг: 0 / 0
05.02.2014, 16:51
    #38550669
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что значит пунктирная стрелка в UML
redwhite90Blazkowicz, ещё одна почемучка.
почему отношение между иныокером и клиентом не показано на диаграмме?
Потому что его как бы нет? Ведь смысл паттерна в том чтобы отвязать клиента от инвокера.
...
Рейтинг: 0 / 0
05.02.2014, 16:54
    #38550676
redwhite90
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что значит пунктирная стрелка в UML
Blazkowicz,

но мы же в main пишем
Код: java
1.
Switch mySwitch = new Switch();



или он как-то по другому должен приходить?
...
Рейтинг: 0 / 0
05.02.2014, 16:56
    #38550680
redwhite90
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что значит пунктирная стрелка в UML
redwhite90,

авторВедь смысл паттерна в том чтобы отвязать клиента от инвокера.

а не инвокера от получателя разве?
...
Рейтинг: 0 / 0
05.02.2014, 17:59
    #38550840
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что значит пунктирная стрелка в UML
redwhite90небезысвестный паттерн команда



Что значит стрелка от клиента к команде?
почему она пунктьирная?

Зависимость. Одно зависит от другого. Как зависит -- неизвестно. В принципе, показывается с помощью стереотипов (на зависимости).
...
Рейтинг: 0 / 0
05.02.2014, 19:51
    #38551010
Музаффар
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что значит пунктирная стрелка в UML
redwhite90небезысвестный паттерн команда



Что значит стрелка от клиента к команде?
почему она пунктьирная?

В UML отношение зависимости изображается пунктирной стрелкой, всегда направленной в сторону независимого класса.

Зависимость
На диаграмме показана зависимость просмотра тех или иных передач от выбора телевизионного канала зрителем. Объект-клиент просмотр использует объект-сервер канал для реализации операции показать ( ). Состояние просмотра зависит от канала, номер которого может изменяться. Выбранный канал передаётся операции показать ( ) как фактический параметр (канал : Канал). Результатом выполнения операции объектом просмотр станет смена его состояния.
...
Рейтинг: 0 / 0
06.02.2014, 10:13
    #38551470
redwhite90
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что значит пунктирная стрелка в UML
спасибо всем, но всё таки не ясно

авторпочему отношение между инвокером и клиентом не показано на диаграмме?

давайте так: инвокер - телевизионный пульт
клиент: Вася, который чешет пузо на диване
получатель:телевизор


P.S. наверное мучает вопрос зачем так занудствовать если суть паттерна и так ясна - хочу по картинке понимать примерную суть паттерна(да, я знаю что при одинаковой картинке паттерны могу делать совсем разное и скорее отличаются сврей целью чем картинкой, но всё же).
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Что значит пунктирная стрелка в UML / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]