佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

查看: 883|回复: 0

Builder Pattern

[复制链接]
发表于 23-11-2008 12:26 AM | 显示全部楼层 |阅读模式
这是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 编辑 ]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 1-6-2024 09:32 PM , Processed in 0.066948 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表