powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Что значит пунктирная стрелка в UML
14 сообщений из 14, страница 1 из 1
Что значит пунктирная стрелка в UML
    #38549893
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
небезысвестный паттерн команда



Что значит стрелка от клиента к команде?
почему она пунктьирная?
...
Рейтинг: 0 / 0
Что значит пунктирная стрелка в UML
    #38549909
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, 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
Что значит пунктирная стрелка в UML
    #38550133
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
Что значит пунктирная стрелка в UML
    #38550163
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
кстати открыл книжку от head first - там обычная стрелка - не пунктирная
...
Рейтинг: 0 / 0
Что значит пунктирная стрелка в UML
    #38550168
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Грубо говоря, Клиент не имеет постоянной ссылки на Команду. Он получает её в процессе и как-то использует. Не зная даже явно какая там конкретно команда.
Сплошные линии указывают на более прочные связи, например, поля класса.
...
Рейтинг: 0 / 0
Что значит пунктирная стрелка в UML
    #38550173
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Что значит пунктирная стрелка в UML
    #38550555
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

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

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



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

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

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



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

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



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

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

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

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

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


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


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