装饰模式原理请随便找书看一下,这里直接给例子:
生产一把刀需要两个工序,工序一和工序二
Process:生产
Component:原料(生产刀具的原材料是棒料 bar)
Procedure:生产刀具工序
FirstProcedure:工序一
SecondProcedure:工序二
from __future__ import division
from __future__ import print_function
from __future__ import unicode_literals
from future_builtins import *
import sys
class Process(object):
def __init__(self):
super(Process,self).__init__()
pass
def make(self):
pass
class Component(Process):
def __init__(self):
super(Component,self).__init__()
pass
def make(self):
print("bar")
pass
pass
class Procedure(Process):
component=Process()
def __init__(self,comp):
super(Procedure,self).__init__()
self.component=comp
pass
def make(self):
print('procedure')
pass
pass
class FirstProcedure(Procedure):
def __init__(self,component):
super(FirstProcedure,self).__init__(component)
pass
def make(self):
self.component.make()
print('firs procedure')
pass
pass
class SecondProcedure(Procedure):
def __init__(self,component):
super(SecondProcedure,self).__init__(component)
pass
def make(self):
self.component.make()
print('second procedure')
pass
pass
#客户端
if(__name__=="__main__"):
component=Component()
first=FirstProcedure(component)
second=SecondProcedure(first)
second.make()