牌語備忘録 -pygo

あくまでもメモです。なるべくオフィシャルの情報を参照してください。

牌語備忘録 -pygo

Python でデザパタ -- アダプタ/Adapter

(Python2.7)

Adapter

元ネタ

Adapter.py
#!/usr/bin/env python
# *-# -*- coding: utf-8 -*-

class Adaptee(object):
    # 既存機能

    def __init__(self, string):
        self.string = string

    def show_with_aster(self):
        print "*{string}*".format(string=self.string)


class Target(object):
    # 実装したいクラス

    def __init__(self, obj):
        self.obj = obj

    def print_strong(self):
        return self.obj.print_strong()


class Adapter(object):
    # 必要な機能に変換

    def __init__(self, string):
        self.adaptee = Adaptee(string)

    def print_strong(self):
        return self.adaptee.show_with_aster()


class Client(object):
    # Target を利用するクラス

    def execute(self, string):
        target = Target(Adapter(string))
        target.print_strong()


if __name__ == '__main__':
    client = Client()
    client.execute("Hello")