Я попытался через Adapter объединить два интерфейса, которые отличаются:
1. названием
2. форматом возвращаемого значения
Мне кажется, это как раз те два пункта, в работе с которыми может помочь описываемый паттерн. не забыл ли я что-нибудь важное? Можно ли пример улучшить и приспособить для более сложной задачи, которая решается в рамках этого adapter?
#!/usr/bin/env python3 import random class RandomNum: def getNum(self): return random.random() class RandomObj: def getObj(self): return {'num': random.random()} class Adapter: def __init__(self, adaptee): self.adaptee = adaptee def getNum(self): return self.adaptee.getObj()['num'] n = RandomNum() o = Adapter(RandomObj()) print(n.getNum()) print(o.getNum())
LIVE DEMO