裝飾模式原理請隨便找書看一下,這裡直接給例子:
生產一把刀需要兩個工序,工序一和工序二
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()
設計模式(四) 裝飾模式
裝飾模式又被稱為包裝模式。通過對客戶端透明的方式來拓展物件的功能,是繼承關係的一種替代方案 假設,現在要給qq秀裡的人物設計裝扮衣服,每個人可按自己不同的喜好搭配不同的衣服。先建立person類,它裡面有乙個show 展示 也是穿衣服 的方法 public class person public p...
設計模式筆記(四) 裝飾模式
裝飾模式 decorator 裝飾模式是為已有功能動態的新增更多功能的一種方式。using system namespace studesignmode.decorator public abscustomer public abscustomer string name public virtua...
設計模式系列(四) 裝飾模式
動態的為乙個物件的某些職責新增一些額外的功能,與通過繼承來獲得新功能相比,decorator 更加的靈活 試想一下,如果沒有 decorator,轉而使用繼承,每當想要為乙個物件新增某個功能時,我們就需要生成乙個子類。當需要這些功能的組合時,就要生成更多的具有組合功能的子類。這會產生兩個問題 1.類...