ООП для чайников. Паттерны проектирования. Фасад (facade)

Еще один паттерн из группы структурирующих, — фасад. Фасад предоставляет унифицированный интерфейс, «оборачивая» собой подсистему. Им пользуются в случае если необходимо изолировать клиента от «разухабистого» API подсистемы, упрощая его и сокращая количество объектов о которых должен знать клиент. Фасад может упростить переносимость кода между разными платформами или подсистемами.

Вот как выглядит Фасад на диаграмме:

facade

Простой пример, реализующий Фасад на Python:

class Tree:
    
    def grow(self):
        print("grow tree")
    
class Child:
    
    def born(self):
        print("born child")
    
class House:
    
    def build(self):
        print("build house")
    
    
class TheMenFacade:
    
    def __init__(self):
        self._tree = Tree()
        self._child = Child()
        self._house = House()
    
    def growTree(self):
        self._tree.grow()
        
    def bornChild(self):
        self._child.born()
        
    def buildHouse(self):
        self._house.build()
        
if __name__ == '__main__':
    
    print 'Content-Type: text/plain'
    print ''    
    
    facade = TheMenFacade()
    facade.bornChild()
    facade.buildHouse()
    facade.growTree()

--------------

born child
build house
grow tree

Comments

comments


Bookmark and Share