查看: 883|回复: 0
|
Builder Pattern
[复制链接]
|
|
这是BUILDER PATTERN, 我是用PYTHON 写出一个简单的例子.
http://zh.wikipedia.org/wiki/%E7%94%9F%E6%88%90%E5%99%A8_(%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F)
#director
class FormatText:
def __init__(self):
self.builder= MessageBuilder()
def buildMessage(self,header,footer,body):
self.builder.setHeader( header)
self.builder.setFooter( footer)
self.builder.setContent(body)
def getMessage(self):
return self.builder.getProdcut()
#abstract builder
class Builder(object):
def setHeader(self,header):
pass
def setFooter(self,footer):
pass
def setContent(self,body):
pass
def getProdcut(self):
pass
#concrete builder
class MessageBuilder(Builder):
def setHeader(self,header):
self.header = header
def setFooter(self,footer):
self.footer = footer
def setContent(self,body):
self.body = body
def getProdcut(self):
product = SimpleText(self.header,self.body,self.footer)
return product.generateText()
#final product
class SimpleText:
def __init__(self,header,footer,body):
self.header = header
self.footer = footer
self.body = body
def generateText(self):
text = "------header-------\n%s\n-------body-------\n%s\n------footer-------\n%s\n\nthanks.." %(self.header,self.body,self.footer)
return text
#consumer
format = FormatText()
format.buildMessage("test","hi this is a test.....","ok done")
text =format.getMessage()
print text
[ 本帖最后由 mokth 于 23-11-2008 12:33 AM 编辑 ] |
|
|
|
|
|
|
| |
本周最热论坛帖子
|