@@ -145,8 +145,17 @@ def setNextHandler(self, nextHandler):
145145 def getNextHandler (self ):
146146 return self ._nextHandler
147147
148- @abstractmethod
149148 def handleRequest (self , request ):
149+ """请求处理"""
150+ # 当前责任人处理请求
151+ self ._handleRequestImpl (request )
152+ # 如果存在下一个责任人,则将请求传递(提交)给下一个责任人
153+ if (self ._nextHandler is not None ):
154+ self ._nextHandler .handleRequest (request )
155+
156+ @abstractmethod
157+ def _handleRequestImpl (self , request ):
158+ """真正处理请求的方法"""
150159 pass
151160
152161
@@ -183,11 +192,9 @@ class Supervisor(Responsible):
183192 def __init__ (self , name , title ):
184193 super ().__init__ (name , title )
185194
186- def handleRequest (self , request ):
195+ def _handleRequestImpl (self , request ):
187196 if (request .getDayOff () <= 2 ):
188197 print ("同意 %s 请假,签字人:%s(%s)" % (request .getName (), self .getName (), self .getTitle ()))
189- if (self ._nextHandler is not None ):
190- self ._nextHandler .handleRequest (request )
191198
192199
193200class DepartmentManager (Responsible ):
@@ -196,11 +203,9 @@ class DepartmentManager(Responsible):
196203 def __init__ (self , name , title ):
197204 super ().__init__ (name , title )
198205
199- def handleRequest (self , request ):
206+ def _handleRequestImpl (self , request ):
200207 if (request .getDayOff () > 2 and request .getDayOff () <= 5 ):
201208 print ("同意 %s 请假,签字人:%s(%s)" % (request .getName (), self .getName (), self .getTitle ()))
202- if (self ._nextHandler is not None ):
203- self ._nextHandler .handleRequest (request )
204209
205210
206211class CEO (Responsible ):
@@ -209,11 +214,9 @@ class CEO(Responsible):
209214 def __init__ (self , name , title ):
210215 super ().__init__ (name , title )
211216
212- def handleRequest (self , request ):
217+ def _handleRequestImpl (self , request ):
213218 if (request .getDayOff () > 5 and request .getDayOff () <= 22 ):
214219 print ("同意 %s 请假,签字人:%s(%s)" % (request .getName (), self .getName (), self .getTitle ()))
215- if (self ._nextHandler is not None ):
216- self ._nextHandler .handleRequest (request )
217220
218221
219222class Administrator (Responsible ):
@@ -222,7 +225,7 @@ class Administrator(Responsible):
222225 def __init__ (self , name , title ):
223226 super ().__init__ (name , title )
224227
225- def handleRequest (self , request ):
228+ def _handleRequestImpl (self , request ):
226229 print ("%s 的请假申请已审核,情况属实!已备案处理。处理人:%s(%s)\n " % (request .getName (), self .getName (), self .getTitle ()))
227230
228231# Test
0 commit comments