@habrdima

Как читать uml схему на примере кода?

пример взят с вики
https://ru.wikipedia.org/wiki/Адаптер_(шаблон_прое...

это схема uml паттерна адаптер
%D0%A4%D0%B0%D0%B9%D0%BB:Adapter_pattern.svg

это код на пайтон
class GameConsole:
    def create_game_picture(self):
        return 'picture from console'

class Antenna:
    def create_wave_picture(self):
        return 'picture from wave'

class SourceGameConsole(GameConsole):
    def get_picture(self):
        return self.create_game_picture()

class SourceAntenna(Antenna):
    def get_picture(self):
        return self.create_wave_picture()

class TV:
    def __init__(self, source):
        self.source = source
    def show_picture(self):
        return self.source.get_picture()

g = SourceGameConsole()
a = SourceAntenna()
game_tv = TV(g)
cabel_tv = TV(a)
print( game_tv.show_picture())
print( cabel_tv.show_picture())


мне понятен смысл паттерна, но я пытаюсь разобраться в том как читать uml схему

часть стрелок вроде понятна мне, какие то мануалы по uml для класса я уже посмотрел, но понял только часть((
к тому же некоторые линии эти мануалы не поясняют, например те что без стрелок или где с одной стороны одна стрелка,а с другой стороны другая

но главное пока хочу понять адаптер
1)кто в коде client?
2)что за пунктирная линия без стрелок, как ее читать на примере кода?
3)что значит стрелка в Adaptee->sepcificRequest() именно в uml схеме?
4)Target на схеме полужирный курсив, значит класс должен быть абстрактный, но в коде нет такого класса, почему?
  • Вопрос задан
  • 48 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы