@@ -0,0 +1,784 @@
+import abc%0A%0Aclass Shape(object):%0A    __metaclass__ = abc.ABCMeta%0A%0A    @abc.abstractmethod%0A    def draw(self):%0A        pass%0A%0A%0Aclass Rectangle(Shape):%0A    def __init__(self):%0A        super(Rectangle, self).__init__()%0A%0A    def draw(self):%0A        print 'Drawing Rectangle...'%0A%0A%0Aclass Square(Shape):%0A    def __init__(self):%0A        super(Square, self).__init__()%0A%0A    def draw(self):%0A        print 'Drawing Square...'%0A%0A%0Aclass DemoFacade():%0A    def __init__(self):%0A        self.rectangle = Rectangle()%0A        self.square = Square()%0A%0A    def draw_rectangle(self):%0A        self.rectangle.draw()%0A%0A    def draw_square(self):%0A        self.square.draw()%0A%0A%0A# main class.%0A%0Aif __name__ == '__main__':%0A    shape_facade = DemoFacade()%0A    shape_facade.draw_rectangle()%0A    shape_facade.draw_square()

Create a new example of shape using Facade pattern