class Text:
    def __init__(self, t):
        self.__t = t

    def get(self):
        return self.__t

class Message:
    def __init__(self, text):
        self.text = text

    def get(self):
        return self.text.get()

class Formatter:
    def format(self, msg):
        return msg

class Buffer:
    def __init__(self):
        self.msg = None

    def write(self, msg):
        self.msg = msg

    def read(self):
        return self.msg

class A: 
    def __init__(self, device, f):
        f(device)

class StartList:
    def __enter__(self):
        self.O = []
        return self.O  # ここでリストを返すと 'as' 以降に代入されます
    def __exit__(self, exc_type, exc_val, exc_tb):
        pass

class WITH:
    def __init__(self, device_class):
        self.__K = []
        # インスタンス化してから with に入れます
        with device_class() as lst:
            self.__K = lst
    
    def get_list(self):
        return self.__K
    
class OutputDevice:
    def send(self, msg):
        A(msg.get(), (lambda a: print(a)))

class Printer:
    def __init__(self, device):
        self.device = device

    def print(self, msg):
        self.device.send(msg)

class Echo:
    def __init__(self, printer):
        self.printer = printer

    def run(self, msg):
        self.printer.print(msg)

class Stack:
    def __init__(self):
        self.__data = WITH(StartList).get_list()

    def push(self, m):
        self.__data.append(m)

    def top(self):
        return self.__data[-1]

class Queue:
    def __init__(self):
        self.q =  WITH(StartList).get_list()

class Holder:
    def __init__(self, x):
        self.x = x

    def get(self):
        return self.x

class Wrapper:
    def __init__(self, x):
        self.x = x

    def unwrap(self):
        return self.x

class Executor:
    def __init__(self, echo):
        self.echo = echo

    def exec(self, msg):
        self.echo.run(msg)

class Action:
    def __init__(self, executor):
        self.executor = executor

    def do(self, msg):
        self.executor.exec(msg)

class Service:
    def __init__(self, action):
        self.action = action

    def serve(self, msg):
        self.action.do(msg)

class Controller:
    def __init__(self, service):
        self.service = service

    def handle(self, msg):
        self.service.serve(msg)

class Facade:
    def __init__(self, controller):
        self.controller = controller

    def request(self, msg):
        self.controller.handle(msg)

class Builder:  
    def build(self):
        device = OutputDevice()
        printer = Printer(device)
        echo = Echo(printer)
        executor = Executor(echo)
        action = Action(executor)
        service = Service(action)
        controller = Controller(service)
        facade = Facade(controller)
        return facade

class Program:
    def __init__(self):
        self.stack = Stack()
        self.formatter = Formatter()
        self.builder = Builder()
        self.facade = self.builder.build()

    def run(self):
        msg = Message(Text("hello world"))
        msg = self.formatter.format(msg)
        self.stack.push(msg)
        self.facade.request(self.stack.top())

class Main:
    @staticmethod
    def start():
        Program().run()

Main.start()

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: